change()当值由设置时,事件处理程序中的逻辑未运行val(),但当用户使用鼠标选择值时,该逻辑确实运行。为什么是这样?
change()
val()
<select id="single"> <option>Single</option> <option>Single2</option> </select> <script> $(function() { $(":input#single").change(function() { /* Logic here does not execute when val() is used */ }); }); $("#single").val("Single2"); </script>
因为该change事件需要由用户而不是通过JavaScript代码启动的实际浏览器事件。
change
而是这样做:
$("#single").val("Single2").trigger('change');
要么
$("#single").val("Single2").change();