私はこのような私のページでjqueryのオートコンプリートコンボボックスました:私はAJAX呼び出しを実行し、隠された分野でいくつかの情報を変更select
とchange
イベントのjQueryのオートコンプリート変更イベント
$.widget("ui.combobox", {
_create: function() {
...
var input = this.input = $("<input>")
.insertAfter(select)
.val(value)
.autocomplete({
...
select: function(event, ui) {
...
change: function(event, ui) {
...
$(function() {
$("#myid").combobox();
}
を、しかし、ときに私の問題が表示されます何も入力せずににフォーカスを合わせずにテキストフィールドに「Submit」ボタンをクリックします。change
イベントはトリガーされず、サーバー上で間違ったデータを取得します(基本的には、選択変更イベントによって以前に設定された最新のものをキャッチする必要はありません)。では、フォームを送信する前に、テキストフィールドを非フォーカスにしてchange
イベントをトリガーするにはどうすればよいですか?あるいは、テキストフィールドの最新の変更をキャッチしてトリガーする他の方法があります(いくつかのonkeypressイベントによって変更を置き換えます)?助けてくれてありがとう。あなたが送信ボタン
$(".submit-btn").click(function(e){e.preventDefault();});
この方法で送信ボタンのデフォルトのアクションは文句を言わないフォームを送信し、あなたのフォームは、ユーザーだって選択や変更イベントを取得します無効にでき
大丈夫ですが、次は何ですか?それ以降にフォームを送信すると、私は間違った値を与えます –
その場合、onselectまたはonchangeハンドラの中にある関数を抽象化できず、送信ボタンをクリックしても同じものを呼び出すことはできませんか? – walmik
このfunc iamは現在のオブジェクトコンテキストを取得しています(私は3つのオートコンプリートボックスを持っています)、クリックした後に間違っている可能性があります –