Javascript ajax返回上的onChange绑定
我正在替换我的select-on-ajax回调。在下拉列表中,我看到了返回的列表,但当我尝试绑定更改事件时,它给出了不正确的值。警报向我显示值未定义,当我在下拉列表中更改所选选项时,如何查看正确的值 如果我的下拉列表中有值value1、value2、value3,并且我选择了value1,则警报应显示我的值为value1Javascript ajax返回上的onChange绑定,javascript,jquery,ajax,event-handling,Javascript,Jquery,Ajax,Event Handling,我正在替换我的select-on-ajax回调。在下拉列表中,我看到了返回的列表,但当我尝试绑定更改事件时,它给出了不正确的值。警报向我显示值未定义,当我在下拉列表中更改所选选项时,如何查看正确的值 如果我的下拉列表中有值value1、value2、value3,并且我选择了value1,则警报应显示我的值为value1 if (status == "success") { var mysel = $('#Namelist').empty(); for (var i = 0
if (status == "success") {
var mysel = $('#Namelist').empty();
for (var i = 0; i < data.length; i++) {
mysel.append('<option value="' +
data[i] + '">' +
data[i] + '</option>');
}
$("#Namelist").replaceWith(mysel);
$('#Namelist').bind('change', function () {
alert('Value change to ' + $(this).attr('value'));
});
}
替换
$("#Namelist").replaceWith(mysel);
与
然后,您不必在ajax之后再次绑定名称列表上的事件
完整代码
替换
$("#Namelist").replaceWith(mysel);
与
然后,您不必在ajax之后再次绑定名称列表上的事件
完整代码
您应该尝试获取val而不是attr'value':
您应该尝试获取val而不是attr'value':
元素通常没有名为value的属性。要获取此类元素的选定值,需要查询其.value属性
jQuery有一个方便的包装器,名为:
$'Namelist'。绑定'change',函数{
警报“值更改为”+$this.val;
};
元素通常没有名为value的属性。要获取此类元素的选定值,需要查询其.value属性
jQuery有一个方便的包装器,名为:
$'Namelist'。绑定'change',函数{
警报“值更改为”+$this.val;
};
从ajax回调中删除onChange事件的提示很好
Moved the $('#Namelist').on('change',function () {} from ajax callback
to jQuery(function($) {});
$('#NameList').on('change', function () {
alert('Value changed to ' + $(this).val());
});
从ajax回调中删除onChange事件的提示很好
Moved the $('#Namelist').on('change',function () {} from ajax callback
to jQuery(function($) {});
$('#NameList').on('change', function () {
alert('Value changed to ' + $(this).val());
});
我不认为你真的需要$Namelist.replaceWithmysel。另外,您应该更早地绑定更改处理程序,而不是在每个AJAX回调中绑定。另外,您应该更早地绑定更改处理程序,而不是在每个AJAX回调中绑定。value@A.Wolff$this.val还处理多个选择,而this.value则不处理,因此作为“一刀切”调用仍然有一些优势。@Ja͢ck在这里似乎不相关,但这确实是一个很好的观点,thx!最好用这个。value@A.Wolff$this.val还处理多个选择,而this.value则不处理,因此作为“一刀切”调用仍然有一些优势。@Ja͢ck在这里似乎不相关,但这确实是一个很好的观点,thx!
Moved the $('#Namelist').on('change',function () {} from ajax callback
to jQuery(function($) {});
$('#NameList').on('change', function () {
alert('Value changed to ' + $(this).val());
});