javascript - Firefox onchange 不调用函数

标签 javascript dom-events

我有一个包含输入的表单:

<input onchange="checkDomain(true); return false;" type="text" id="dsearch" value="" name="domain" maxlength="30"/>

这在 Opera、Chrome 和 IE 中工作得很好 - 但 Firefox 和 Safari 在调用该函数时遇到问题 checkDomain() 。我在函数中添加了一行用于调试:

function checkDomain(check) 
{
console.log('checkDomain() called!'); 
// do rest of the stuff...
}

因此,在您输入文本并单击其他位置后,Chrome/Opera/IE 可以毫无问题地调用该函数 - 但 Firefox/Safari 不会。有人知道吗?

最佳答案

我不记得在哪里读到它,但你应该使用.keydown()/.keyup()/.keypress() (无论适合您的需要)而不是 onchange。至少对于input[type=text]来说是这样。

您也可以将 .blur().focus 用于各自的目的。

在您的问题中看到这一点:“输入文本并单击其他位置后”,让我得出结论您需要 .blur() 函数。

   $("input[type=text]").blur(function(){
       console.log('checkDomain() called!')
   });

关于javascript - Firefox onchange 不调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12458824/

相关文章:

javascript - jQuery AJAX 调用返回 [object Object]

javascript - html pageshow 和 load 事件有什么区别?

javascript - 使用 javascript 解决数字键盘难题

javascript - 在我的案例中,如何访问从 AJAX 回调函数外部的 ajax 调用返回的数据?

javascript - 如何检测每个页面的加载情况?

javascript - 用于选择国家/地区和国家的下拉菜单

javascript - 使用 TweenLite 从中间到边缘径向淡入图像

javascript - 使用 apache-server 中的 node.js-eureca.io?

javascript - 为什么 onclick 触发下一个函数没有分配给它?

javascript - window.location 第二次不起作用