背景・実現したいこと
お世話になります。
特定条件で送信を不可にする方法についての質問です
以下のようなかたちで、ラジオボタンで特定のほうを選択した際に、確認ボタンを非表示にする方法を検討しております。(必要ない場合はフォームを提出させない)
1)ラジオボタンが2つあり、一つは頭痛なし、一つは頭痛あり、となっている。デフォルトでの選択はJava Scriptにてナシにしています。
2)「頭痛なし」を選択した場合は分岐選択で、終了を促すメッセージ(ラベル)が表示され、「頭痛あり」を選択した場合はフォームに記入する形とする。
3)「頭痛なし」を選択した場合はフォームへの記入の必要がないため、確認ボタンを非表示とする
3)の確認ボタンを非表示とするところで躓いております。
このような動作で以下のように記述してみましたが、うまく動作しない状況となっております。
ラジオボタンは上から順に、0、1、2、、と指定されているのではなく、ラジオボタンの項目名そのままでクラスが指定されているという認識でおります。この場合では「頭痛なし」「頭痛あり」がそれぞれ相当することになるのでしょうか。
また、ボタンに対する指定の仕方はこういったかたちであっていますでしょうか。
よろしくお願いいたします
エラー情報
なし
利用したソースコード
(function()
{"use strict";
fb.events.fields.sickselect.changed = [function (state) {
state.record["sick_2"].value = "頭痛なし";
state.fb.confirm = disabled;
return state;
}
];
})();
ysuzukiさん
kintoneアプリのどの画面でどういうタイミングで処理を実行させるか明記する必要があります。
例えば、レコードの編集画面もしくはレコードの作成画面でラジオボタンの値を変更したタイミングの場合、
次のように記載します。
|
varevents2=['app.record.create.change.ラジオボタン','app.record.edit.change.ラジオボタン'];
kintone.events.on(events2, function(event) {
\<-- ここ処理は処理を記載する -->
return event;
});
実現したいことはこちらの記事と結構近いので、ご参考になるかと思います。
また、ボタンはカスタマイズで追加するという認識でよろしいでしょうか。
画面にボタンを追加するTipsを合わせてご参考になればと思います。
|
| | |
akika様
ありがとうございます。また、だいぶ時間が経ってしまい申し訳ございません。(ちなみにコロナ陽性ではありませんので大丈夫です)
記述が乏しく申し訳ございません。フォームブリッジでガワのフォームを作り、Kintoneでデータの収集を行う形と考えております。Kintoneのフォームにデータを投入する形としておりませんため、イベント起こし方がやはり異なるのではないかと認識しております。フォームブリッジ回答時既設の送信ボタンにつき、「頭痛なし」を選択時に非表示として何も送信させないとしたいというところです。そのような訳でして、fb.events.on(~) にはならないのではないかなどと愚考しております。よろしくお願いします。
ysuzukiさん
認識がズレてしまい大変失礼しました。
実際は試していないので確信がないですが、
state.record["sick_2"].value = "頭痛なし";
だと、フィールドコードが「sick_2」というフィールドに値を設定することになります。
ラジオボタンの値が特定な値の場合に、何か処理したいのではあれば、次のようなイメージでif分などの条件分岐を使えばと思います。
fb.events.fields.ラジオボタンフィールドコード.changed = [function (state) {
if (state.record["ラジオボタンフィールドコード"].value === "頭痛なし") {
var confirm = document.getElementsByClassName('クラス'); // 要素を取得
confirm.style.display = 'none';
return state;
}
}];
akika様 みなさま
いろいろとやってみたのですが、解決できません。クラスのところですが、下のような形で合っていますでしょうか?
やりたいことは、発熱あり/なしの二つの選択肢のうち、発熱なしを選択したときに確認ボタンを表示させないことです。
発熱ありを選択した場合は、分岐選択により、質問が現れて入力完了後に確認ボタンを押すことになります。(分岐選択が入るとうまくいかない?)
よろしくお願いします
{
varconfirm =document.getElementsByClassName('ui.teal.labled.icon.button.fb.confirm');