【发布时间】:2013-07-17 21:20:47
【问题描述】:
我对 jQuery 的 Select2 有疑问。
页面加载时,如果O点击搜索结果会选择并触发onchange事件,但只是第一次。
如果我再次搜索,它不会。
这是我的代码(它是基于 Ajax 的搜索):
jQuery('#search_code').select2({
'width': '600px',
'tokenSeparators': [',', ' '],
'closeOnSelect': false,
'placeholder': 'scan or type a SKU or product or ESN',
'minimumInputLength': 1,
'ajax': {
'url': 'lookProduct',
'dataType': 'json',
'type': 'POST',
'data': function (term, page) {
return {
barcode: term,
page_limit: 3,
page: page
};
},
'results': function (data, page) {
return {
results: data
};
}
}
}).on('change', function (e) {
var str = $("#s2id_search_code .select2-choice span").text();
DOSelectAjaxProd(this.value, str);
//this.value
}).on('select', function (e) {
console.log("select");
});
【问题讨论】:
-
你在调试器中试过了吗?您是否收到任何错误消息,尤其是在第一个 onchange 事件发生时?
-
试试
$(document).on('change', 'span#search_code', function(...看看它是否有效。如果 #search_code 是 div 的 id,则用 div 替换 span,或者用“element”替换它是什么类型的“元素”。 -
是的,这是一个误报。我实际上选择了相同的元素,因此在这种情况下它不会触发更改事件...
-
哦,但是有一个问题.. onchange 不会在同一个索引上触发...所以如果你有一个 ajax 选择,它有 2 个结果并且你选择了索引 1 .. 那么你再次搜索..你有X结果并再次选择索引1 ..内容可能不同但索引相同..所以我每次都必须强制 onchange 。我该怎么做?
-
我发现这篇文章与我的问题相似,但是如何修改我的代码? stackoverflow.com/questions/16062064/…
标签: jquery events onchange jquery-select2