关于变更事件不起作用

时间:2018-01-17 10:42:38

标签: javascript jquery

1)无效的代码(Change Event)是:

$(document).on('change','select[name="id"]',function(){
    alert('Not Working');
});

2)正在运行的代码(Change Event)是:

$(document).on('change',$('select[name="id"]'),function(){
    alert('Working');
    // Here $(this).val() not working for get value.I want to use $('select[name="id"]').val()
});

怀疑:

a)为什么第一次改变事件不起作用?

b)第二次更改事件正在工作,但$(this).val()无效。

您能解释一下上述2个功能之间的区别吗?

2 个答案:

答案 0 :(得分:0)

我不确定为什么你的第一个例子不能正常工作,但是第二个例子的this范围是document,而不是select。

以下内容将this范围限定为选择。

$('select[name="id"]').on('change', function (){
    $(this).val()
});

答案 1 :(得分:0)

为了处理select元素更改:

$('select[name="id"]').on('change',function(){
   alert($(this).val());
});

对于动态创建的元素,请使用:

$(document).on('change','select[name="id"]',function(e){
    alert($(e.target).val());
});

如您所见,在这种情况下,应使用e.target.val() e.target包装到$()中,以便将其作为jquery对象