4

这适用于在用户通过 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(); 

只有最后一个元素实际上是模糊的。不确定其他两个发生了什么或如何进行故障排除。

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

4

2 回答 2

11

需要先有重点。

input_title.focus();
input_title.blur();
...
于 2012-05-23T15:29:30.233 回答
1

这在我的情况下很好用:

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

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

fireEvent(input_title)

参考

于 2019-11-27T08:48:28.487 回答