教えてください。
javascriptにて、以下を実装したいと考えています。
テーブル情報からうまく取れなかったり、イベントをどうやって登録したらよいかわからず悩んでいます。ご教授願えますか?
やりたいこと:
テーブルに、ラジオボタン(OK/NGでデフォルトOK)・文字列を設置
1)新規作成時は、テーブルに配置している文字列を編集不可にして初期表示
初期表示時は、ラジオボタンはOKをセット、文字列は編集不可で出したいです。
2)テーブル列に配置している、ラジオボタンの値が変更されたら、同列上の文字列を編集不可または、可にする。
3)更新時は、ラジオボタンの値をみて、文字列の編集不可/可を切り替えて表示する。
サブテーブルに配置しているラジオボタンイベントはDOMを使用する以外はできないとありましたね!よく調べずに・・・
骨が折れますが、テーブルを使わない、シンプルな方法でやることにしました。
コントロールが増えすぎて、フォームの編集がなかなか開かないのが難点です・・
Foodagriの智さん
やりたいことを実装してみたのですが、いかがでしょうか。
// レコード追加・編集画面が表示された時のイベント
var event1 = ['app.record.create.show','app.record.edit.show'];
kintone.events.on(event1, function (event) {
// テーブル情報取得
var table = event.record.Table1.value;
// 新規作成時にテーブルに配置している文字列を編集不可
table[0]['value']['文字列']['disabled'] = true;
// 更新
return event;
});
// レコード追加・編集画面のフィールド値変更時イベント
var event2 = ['app.record.create.change.ラジオボタン','app.record.edit.change.ラジオボタン'];
kintone.events.on(event2, function (event) {
// テーブル情報取得
var table = event.record.Table1.value;
// ラジオボタンの値取得
var radio = table[0]['value']['ラジオボタン']['value'];
// ラジオボタン変更時に編集可否変更
if (radio == "OK") {
table[0]['value']['文字列']['disabled'] = true;
} else if(radio == "NG") {
table[0]['value']['文字列']['disabled'] = false;
};
// 更新
return event;
});
聖也さん
ご回答ありがとうございます。
さっそく試してみました。
無事に動作確認できました。うれしい限りです^^
#ただ、サブテーブルのフィールド名が日本語でしたので、以下のようにしなければなりませんでした。
table1[0].value[‘ラジオボタン’].value
あとは、テーブルが追加された時の対応ができればOKなんですが・・
頑張ります!!