0

私のフォームでは、jquery のオートコンプリートを使用しています。テキストボックスにありますが、ドロップダウンのように見えます。それはうまくいきます。

このテキスト ボックスで .change 呼び出しを使用して、他の操作を行います。その .change 呼び出し/関数で、別の関数を呼び出します。私の問題は、オートコンプリート フィールドの値が実際に選択した値を取得する前に、他の関数呼び出しが起動するように見えることです。

$('#account1').change(function(){
  $('#sub_account1').html('');
  $('#object_code1').html('');
  $('#sub_object_code1').html('');      
  $('#kfs_acct_1').val('');
  change_object_codes(1);
});

たとえば、テキスト フィールドに「H」と入力し、表示されるオートコンプリート リストから「Hello World」を選択します。「Hello World」がテキスト ボックスに表示/設定される前に、change_object_codes(1) が起動します。$('#account1').val() で動作する必要がある change_object_code() のコードがありますが、まだ設定されていないため認識されません。はぁ!

アラートを入れたら見つかりました('yo'); 私の .change ブロックの最初の行では、それが十分に遅くなるため、$('#account1).val() は change_object_code が起動する前に設定されます。しかし、明らかに、私はそこにそれを望んでいません。

私のテキストボックスが選択した値を取得する前に change_object_codes() が実行されないようにする方法があるかどうか疑問に思っています。

前もって感謝します

4

1 に答える 1

1

ここで jquery のオートコンプリート API を見ると: http://api.jqueryui.com/autocomplete/#event-changeイベント変更処理を使用する必要があることがわかります。

したがって、オートコンプリートを呼び出すと(ところで、これは実際にはあなたの例にもあるはずです)、次のようになります。

$( "#account1" ).autocomplete({
  change: function( event, ui ) {
    change_object_codes(1);
}
});
于 2013-09-18T18:38:41.477 に答える