如何在开始输入后清空输入字段

时间:2012-03-17 10:21:37

标签: javascript mootools textinput onkeyup

我正在尝试创建一个输入框,一旦开始输入,输入框就会变空。 (不关注焦点)。我尝试在mootools上使用keyup事件,但流程并不是无缝的。擦除输入字段需要一些时间。这是代码

document.addEvent('domready', function(e) {
$('inputBox').addEvent('keyup', function() {
    if(inputBox.value != inputBox.defaultValue){
        inputBox.value = '';
        $('inputBox').removeEvents('keyup');    
    }
});
});

最好的方法是什么才能让它表现得更好?

2 个答案:

答案 0 :(得分:3)

正如Remon所说,你可以绑定到一个keydown事件,你不会有任何延迟,但是你不能与默认值进行比较,因为当按下该键时,值将是相同的(一旦你拿到密钥,价值就会改变。)

这将是keydown的代码:

document.addEvent('domready', function(e) {
    $('inputBox').addEvent('keydown', function() {
        this.set('value', '').removeEvents('keydown');
    });
});

如果你想像初始代码那样进行比较,那么你需要使用keyup,但它会有一点延迟。

这是您的代码有点优化和工作:

document.addEvent('domready', function(e) {
    $('inputBox').addEvent('keyup', function(ev) {
        if(this.value != this.defaultValue){
            this.set('value', ev.key).removeEvents('keyup');
        }
    });
});​

我希望这能回答你的问题:)

答案 1 :(得分:1)

keyup事件在所有关键事件的最后触发,因此您可能最好不要绑定到keydown事件,这将使您的流程感觉更加无缝。