前提
jQuery で、Idが1つ以上ある場合はダイアログを表示させ、複数あるIdの中から一つを選択させてから次の処理を実行するというものを作成しています。
ただ現状のコードだとダイアログの表示がすべての処理が終わってから表示され、うまくいかない状況です。
実現したいこと
- [ 1 ] IDを取得
- [ 2 ] IDが複数ある場合は、ダイアログを表示させて一つのIDを選択させる
- [ 3 ] 取得したIDを使用した処理を行う
以上
発生している問題・エラーメッセージ
ダイアログが表示される前に処理が終わってしまう。
該当のソースコード
JavaScript
1function searchItem(){ 2 mobileAjaxCommon(true, 3 { 4 url: '/demo/SearchId', 5 data: data 6 }, 7 function (data) { 8 $.when( 9 data.IdCnt > 1 ? showSelectDialog($("#Code").val(), { resultId: data.Id }) : console.log("")) 10 .done(function () { 11 $("#Id").val(data.Id); 12 }) 13 }, 14 function (data) { 15 //エラー処理 16 } 17 ); 18} 19 20 21function showSelectDialog(searcheData,targetObj){ 22//ダイアログ自体の表示はできているので内部処理は省略 23//ダイアログが閉じられた段階で選択されたIDを返す 24} 25
試したこと
jQueryやJavaScriptでの他の処理方法の検討しています。
※Promiseの使用も検討しましたが、require()を使用するのに必要なNode.jsを使用することができないため、when().done()を使用しています。
回答3件
あなたの回答
tips
プレビュー