如何在JavaScript中强制执行模糊事件?

时间:2010-09-03 15:38:06

标签: javascript jquery

这就是我想要做的。我希望每次选择元素更改时都触发一个事件。我有一个多行选择,当我进行更改(单击元素)时,它不会更改,直到选择框失去焦点。因此,每次单击选择框时,我都会尝试强制模糊。这样,如果它改变,它将触发改变的事件。如果它没有改变,什么都不会发生。

我该怎么做?我是否正确地接近这个? Jquery的答案也没问题。

5 个答案:

答案 0 :(得分:6)

除了Ender之外,完整的代码可能是这样的。

$('#mySelectBox').change(function() {
    $('#thingToBlur').blur();
})

参考:http://api.jquery.com/blur/

答案 1 :(得分:3)

使用jQuery执行:

$('#mySelectBox').change(function() {
   //do things here
});

根据http://api.jquery.com/change/的文档,当用户做出选择时会立即触发事件。

查看此演示以验证其是否有效:http://jsfiddle.net/AHM8j/

答案 2 :(得分:1)

您可以将onclick处理程序附加到select和各个选项。基本上是onclick="this.blur();"。我总是发现<select>元素上的点击事件很痛苦,因为没有任何事情发生在你期望的那一点。

答案 3 :(得分:1)

好的,这是正在发生的事情。我包含了-vsdoc版本的JQuery而不是实际的JQuery库。这也修复了我使用某些插件(例如blockUI)时遇到的一些问题。

答案 4 :(得分:1)

这将找到具有焦点的元素并触发模糊事件。

function blur(){
    document.querySelectorAll('input,textarea').forEach(function(element){
        if(element === document.activeElement) {
            return element.blur();
        }
    });
}