在表单的onchange事件中,JavaScript可能会触发两次的原因有多种,比如表单项的值发生改变时,会触发一次,而在用户离开该表单项时,又会触发一次。解决这个问题的方法有以下几种:
var timer;
function onChangeHandler() {
clearTimeout(timer);
timer = setTimeout(function() {
// 执行需要在延迟时间之后执行的代码
}, 200);
}
function onChangeHandler(event) {
if (event.type === 'blur') {
// 执行需要在用户离开表单项时执行的代码
}
}
document.getElementById('myForm').addEventListener('change', function(event) {
// 执行需要在表单项值发生改变时执行的代码
}, true);
上一篇:表单模态框中的HTML输入字段未填充对象的整数属性默认值。
下一篇:表单onsubmit属性中的'someFunction()”、'JavaScript:someFuction()”和'returnsomeFunct()”有何区别?