13

一度にオートコンプリートと onchange イベントを実行しようとしています。

手段: オートコンプリート テキスト ボックスで onchange イベントを発生させたい。キーボードからテキストボックスに何かを書き、テキストボックスの外側をクリックするとonchangeイベントが発生しますが、自動提案名から何かを選択するとonchangeイベントが発生しません。

私のHTMLコード

<div style="width: 34%">
   Person Name:<input id="txt0" type="text" onchange="SaveData('txt0')" class="userSearch" placeholder="Helped Person" />
</div>

JavaScript コード

function AutoComplete() {
//Autocomplete added to the textbox.
$('.userSearch').autocomplete({
    source: function (request, response) {
        $.ajax({
            url: "CTC.aspx/GetMemberName",
            data: "{ 'prefixText': '" + request.term + "' }",
            dataType: "json",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                response(data.d)
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert('Error occured while autocomplete');
            }
        });
    },
    minLength: 1
});
}

function SaveData(textBoxId) {
     alert(textBoxId);
}

オートコンプリートから選択した後に onchange イベントを発生させたい。

助けてください

前もって感謝します。

4

4 に答える 4

11

これを実現するには、オートコンプリート ウィジェットで change イベントを使用できます。 http://api.jqueryui.com/autocomplete/#event-change

例えば:

function AutoComplete() {
  //Autocomplete added to the textbox.
  $('.userSearch').autocomplete({
      source: function (request, response) {
         // your ajax code
      },
      minLength: 1,
      change: function (event, ui) { SaveData(); }
  });
}
于 2012-11-28T09:17:21.230 に答える
3
$('#1').autocomplete({
    select: function(event, ui) {
        "use strict";
        alert('select event called');
       },
    source: ["ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme"],

    minLength: 1,
    change: function(event, ui) {
        if (ui.item) {
            alert("ui.item.value: " + ui.item.value);
        } else {
            alert("ui.item.value is null");
        }
        console.log("this.value: " + this.value);
    }
});

これにより、オートコンプリートの選択イベントと変更イベントの両方を実行できます。

フィドルをチェックすることもできますhttp://jsfiddle.net/74wLyd8v/

于 2015-05-06T07:23:27.783 に答える
2
$('.userSearch').trigger('change');

それは「変更」イベントをトリガーします

于 2012-11-28T09:15:56.423 に答える
0

KDRVN は正しいです。

$( ".selector" ).autocomplete({
  select: function( event, ui ) {}
});

のように

$( "#models" ).autocomplete({source: models,  select: function( event, ui ) {alert('flippy');} });

次のいずれでもない:

    $('#models').on('select', function() { alert('waawoo'); });
    $('#models').on('change', function() { alert('feefaa'); });
 onchange="updateModels(this)"
于 2013-11-20T21:21:02.910 に答える