jQuery中onchange事件如何使用?绑定后不触发问题怎么解决
jQuery onchange事件绑定不触发问题排查
常见问题原因及解决方法:
- jQuery别名配置错误
你代码中使用$jq作为jQuery的调用别名,需要先确认你是否在这段代码之前完成了别名声明:- 打开浏览器控制台执行
console.log($jq),如果返回undefined说明未配置别名 - 解决方案:要么直接将代码中的
$jq替换为默认的$或jQuery,要么在代码前添加别名声明var $jq = jQuery.noConflict()
- 打开浏览器控制台执行
- DOM未加载完成就执行绑定
如果你的script块位置早于input元素,或者放在head中执行,此时页面还没渲染出id为department的元素,绑定会失效。解决方案是将绑定逻辑放在DOM就绪回调中:
<input id="department" name="department" /> <script type="text/javascript"> // 等待DOM全部加载完成后再执行绑定 $jq(function() { $jq("#department").on('change',function(){ console.log('Inside department onchange'); validateDepartment(); }); }); </script>
- 重复ID冲突
检查页面内是否存在多个id="department"的元素,id属性是全局唯一的,重复会导致jQuery只匹配到第一个元素,后续元素绑定不会生效。 - change事件触发逻辑误解
如果你的input是普通文本输入框,change事件只有在输入框失去焦点且内容发生变更时才会触发,如果需要输入实时触发,可以将事件名替换为input。
内容的提问来源于stack exchange,提问作者jt3
相关产品推荐
相关产品推荐

