Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax返回上的onChange绑定_Javascript_Jquery_Ajax_Event Handling - Fatal编程技术网

Javascript ajax返回上的onChange绑定

Javascript 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

我正在替换我的select-on-ajax回调。在下拉列表中,我看到了返回的列表,但当我尝试绑定更改事件时,它给出了不正确的值。警报向我显示值未定义,当我在下拉列表中更改所选选项时,如何查看正确的值

如果我的下拉列表中有值value1、value2、value3,并且我选择了value1,则警报应显示我的值为value1

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());
  });