前提及び実現したいこと
ここに質問の内容を詳しく書いてください。
(例)
JavaScriptでシステムを作っており、やりたいことを実装できているのですが
もっとスマートにコードを記述したいと考えています。
JavaScriptの知識が浅いため、該当コードのリファクタリングなどについてお教えいただければと思います。
該当のソースコード
//編集画面読込時のイベント $p.events.on_editor_load = function () { getParentData(); } //「伝票作成」の「コース(分類E)」の値が変更されるたびに呼び出されるイベント $(document).on('change', '#' + $p.tableName() + '_ClassE', function () { getParentData(); }); //「伝票作成」の「オプション(分類G)」の値が変更されるたびに呼び出されるイベント $(document).on('change', '#' + $p.tableName() + '_ClassG', function () { getParentData(); }); //Bテーブルの「分類H」の値が変更されるたびに呼び出されるイベント $(document).on('change', '#' + $p.tableName() + '_ClassH', function () { getParentData(); }); //「伝票作成」の「交通費(分類Q)」の値が変更されるたびに呼び出されるイベント $(document).on('change', '#' + $p.tableName() + '_ClassQ', function () { getParentData(); }); function getParentData() { //Bテーブルの「新コース(分類R」に値がセットされている場合のみ、Aテーブルの指定したレコードの値を取得する if ($('#' + $p.tableName() + '_ClassR').val()) { $p.apiGet({ //Bテーブルの「分類R」の値(レコードID)を指定 'id': $p.getControl('ClassR').val(), 'done': function (data) { //Bテーブルの「数値A」にAテーブルから取得した「数値A」の値をセット $p.set($p.getControl('NumA'), data.Response.Data[0].NumA); }, 'fail': function (data) { console.log(data); } }); } //Bテーブルの「分類G」に値がセットされている場合のみ、Aテーブルの指定したレコードの値を取得する if ($('#' + $p.tableName() + '_ClassG').val()) { $p.apiGet({ //Bテーブルの「分類G」の値(レコードID)を指定 'id': $p.getControl('ClassG').val(), 'done': function (data) { //Bテーブルの「数値E」にAテーブルから取得した「数値C」の値をセット $p.set($p.getControl('NumE'), data.Response.Data[0].NumC); }, 'fail': function (data) { console.log(data); } }); } //Bテーブルの「分類H」に値がセットされている場合のみ、Aテーブルの指定したレコードの値を取得する if ($('#' + $p.tableName() + '_ClassH').val()) { $p.apiGet({ //Bテーブルの「分類H」の値(レコードID)を指定 'id': $p.getControl('ClassH').val(), 'done': function (data) { //Bテーブルの「数値D」にAテーブルから取得した「数値C」の値をセット $p.set($p.getControl('NumD'), data.Response.Data[0].NumC); }, 'fail': function (data) { console.log(data); } }); } //Bテーブルの「分類Q」に値がセットされている場合のみ、Aテーブルの指定したレコードの値を取得する if ($('#' + $p.tableName() + '_ClassQ').val()) { $p.apiGet({ //Bテーブルの「分類Q」の値(レコードID)を指定 'id': $p.getControl('ClassQ').val(), 'done': function (data) { //Bテーブルの「数値F」にAテーブルから取得した「数値C」の値をセット $p.set($p.getControl('NumF'), data.Response.Data[0].NumC); }, 'fail': function (data) { console.log(data); } }); } }
回答2件
あなたの回答
tips
プレビュー