blur()无法以编程方式工作但是当从用户发起时

时间:2012-05-23 15:22:31

标签: javascript

这在用户通过ajax在单个输入表单上提交输入后清除输入。

var tweet_input = document.getElementById( 'tweet_input' );
tweet_input.value='';
tweet_input.blur();

然而,在3输入字段orm上,这不是:

var input_url = document.getElementById( 'bookmark_input_url' );
    input_url.value='';
var input_title = document.getElementById( 'bookmark_input_title' );
    input_title.value='';
var input_tag = document.getElementById( 'bookmark_input_tag' );
    input_tag.value='';

input_title.blur();
input_url.blur();
input_tag.blur(); 

只有最后一个元素实际上是模糊的。不确定其他两个是怎么回事,或者如何排除故障。

基本上我有一个触发模糊()的事件监听器,它们可以在实际的用户模糊()上正常工作,但是当我尝试以编程方式启动它们时,只有一个可以工作。

2 个答案:

答案 0 :(得分:4)

需要首先关注。

input_title.focus();
input_title.blur();
...

答案 1 :(得分:0)

在我的情况下,这种方法很好:

const fireEvent = (element, eventType="blur") => element && element.dispatchEvent(new Event(eventType));

现在,我们可以在任何要触发附加到任何元素的事件的地方调用此函数。

fireEvent(input_title)

Reference