blur()与onblur()

我有一个带有onblur事件监听器的输入标签:

 

通过JavaScript,我想在这个输入上触发blur事件,以便它反过来调用doSomething函数。

我最初的想法是调用模糊:

 document.getElementById('myField').blur() 

但这不起作用(虽然没有错误)。

这样做:

 document.getElementById('myField').onblur() 

这是为什么? .click()将通过onclick监听器调用附加到元素的click事件。 为什么blur()工作方式不一样?

这个:

 document.getElementById('myField').onblur(); 

因为你的元素( )有一个名为“onblur”的属性,其值是一个函数。 因此,你可以调用它。 但是,您并没有告诉浏览器模拟实际的“模糊”事件; 例如,没有创建事件对象。

元素没有“模糊”属性(或“方法”或其他),所以这就是为什么第一件事不起作用。

与尖端所说的相反, blur()方法确实存在并且是w3c标准的一部分。 以下exaple将适用于每个现代浏览器(包括IE):

    Javascript test    
Blur field on hover

请注意,我使用了link.onmouseover而不是link.onclick ,因为否则点击本身会删除焦点。

我想这只是因为输入失去焦点而调用onblur事件,没有与输入相关联的模糊操作,就像有一个按钮关联的点击操作