怎么避免onkeydown 和 onblur 事件的冲突?
文本框里面 我有 onblur事件 和 onkeydown事件
<input id='std' MaxLength='20' type='text' class='StdTxt' onblur='blurStd(this);' onfocus='focusStd(this);' onkeydown='if(event.keyCode==13 && !this.value.trim().isNull()){blurStd(this);return false;}'/>
两者都是为了 提交 可是 我在回车后 执行的是onkeydown事件 但是 按完回车相应的焦点就失去同时又执行了 onblur事件
结果就是弹出一样的对话框两次 我想让他回车后 不执行 onblur事件 该怎么解决
下面是我方法中相应的代码 alert("你输入的规格 " + txt.value + " 已存在,请重新输入!");这句话弹了两次
for (var j = 0; j < rdos.length; j++) {
var s = rdos[j].value.split(',');
if (s[0] != a[1]) {
if (s[1] == txt.value) {
alert("你输入的规格 " + txt.value + " 已存在,请重新输入!");
txt.focus();
txt.value="";
txt.className = "StdTxt1";
}
}
}
<input id='std' MaxLength='20' type='text' class='StdTxt' onblur='blurStd(this);' onfocus='focusStd(this);' onkeydown='if(event.keyCode==13 && !this.value.trim().isNull()){blurStd(this);return false;}'/>
两者都是为了 提交 可是 我在回车后 执行的是onkeydown事件 但是 按完回车相应的焦点就失去同时又执行了 onblur事件
结果就是弹出一样的对话框两次 我想让他回车后 不执行 onblur事件 该怎么解决
下面是我方法中相应的代码 alert("你输入的规格 " + txt.value + " 已存在,请重新输入!");这句话弹了两次
for (var j = 0; j < rdos.length; j++) {
var s = rdos[j].value.split(',');
if (s[0] != a[1]) {
if (s[1] == txt.value) {
alert("你输入的规格 " + txt.value + " 已存在,请重新输入!");
txt.focus();
txt.value="";
txt.className = "StdTxt1";
}
}
}
...全文
相关推荐
onclick和onblur冲突问题的快速解决方法
这种方法可以减少事件监听器的数量,提高性能,同时避免了 `onclick` 和 `onblur` 直接冲突的问题。在实际应用中,开发者应根据项目需求和性能考虑选择合适的方法。
JavaScript事件监听详解[代码]
相比传统的事件处理属性如onclick或onblur,addEventListener不仅可以绑定多个函数到同一个事件,还可以在不覆盖原有事件行为的情况下添加额外的功能,从而避免了潜在的事件处理冲突和内存泄漏问题
表单元素的submit()方法和onsubmit事件应用概述
在使用过程中,需要注意避免命名冲突、正确处理事件回调的返回值,以及充分考虑跨浏览器兼容性。理解和熟练掌握这些技巧,将有助于构建更加健壮和用户体验良好的Web应用。
怎么限制input的text里输入的值只能是数字(正则、js)
在HTML中,可以通过onblur事件来触发JavaScript验证代码。onblur事件会在元素失去焦点时触发。它常用于表单验证,以确保用户填写的信息符合要求。3.
控制input输入框中提示信息的显示和隐藏的方法
**注意点**:如果页面上有多个input标签需要相同设置,务必为每个input分配不同的方法名,避免事件冲突。此外,可以考虑使用类(class)选择器来简化和统一处理多个input元素。4.


