標準拡張ポイントを提供する JavaScript ウィジェットがあります。そのうちの 1 つは関数ですbeforecreate
。false
アイテムが作成されないようにするには、関数を返す必要があります。
jQuery を使用してこの関数に Ajax 呼び出しを追加しました。
beforecreate: function (node, targetNode, type, to) {
jQuery.get('http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
function (result) {
if (result.isOk == false)
alert(result.message);
});
}
しかし、ウィジェットがアイテムを作成しないようにしたいので、false
コールバックではなく、マザー関数で返す必要があります。jQuery またはその他のブラウザ内 API を使用して同期 AJAX リクエストを実行する方法はありますか?
ベストアンサー1
からjQuery ドキュメント:同期 Ajax リクエストを取得するには、非同期オプションをfalse に指定します。その後、コールバックは、親関数が処理される前にデータを設定できます。
提案どおりに変更した場合、コードは次のようになります。
beforecreate: function (node, targetNode, type, to) {
jQuery.ajax({
url: 'http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
success: function (result) {
if (result.isOk == false) alert(result.message);
},
async: false
});
}