オートコンプリートと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イベントを発生させたい。
助けてください
前もって感謝します。
これを行うには、オートコンプリートウィジェットの変更イベントを使用できます。 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(); }
});
}
$('#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/
$('.userSearch').trigger('change');
「変更」イベントがトリガーされます
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)"