点击进入和更改时的火灾事件

时间:2012-03-15 14:18:27

标签: javascript jquery html

当用户在文本框中输入并按下输入时,我有一个文本框,应该提醒值,如果用户更改了值,它也应该提醒。因此会有两个事件按键和更改。我想用最少的代码调用它。没有重复的代码。

$('#txt').keydown(function (e){
    if(e.keyCode == 13){
        alert('you pressed enter ^_^');
    }
})​

Online Demo

4 个答案:

答案 0 :(得分:6)

您可以列出多个事件作为第一个参数(尽管您仍然需要处理每个事件):

$('#txt').bind('keypress change', function (e){
    if(e.type === 'change' || e.keyCode == 13) {
        alert('you pressed enter ^_^');
    }
})​;​

我故意使用bind,因为OTs小提琴使用jQ 1.5.2

答案 1 :(得分:3)

这就是我如何处理这个问题。

http://jsfiddle.net/tThq5/3/

注意:我使用$ .live()(v.1.3)而非$ .on()(v1.7)以及返回false 所以我不这样做获得超过1个事件。

$('#txt').live('keypress change', function(e) {
    if (e.type === 'keypress' && e.keyCode == 13) {
        alert('you pressed enter');
        return false;
    } else if (e.type === 'change') {
        alert('you made a change');
        return false;
    }
});​

答案 2 :(得分:1)

这样的东西?

$('#txt')
    .keydown(function (e) {
        if(e.keyCode == 13){
            alert('you pressed enter ^_^');
        }
    })
    .change(function(e) {
        alert('you changed the text ^_-');
    });

答案 3 :(得分:1)

尝试live方法:

$("#txt").live({
    change: function(e) {
        alert('you changed the value');
    },
    keydown: function(e) {
        if (e.keyCode == 13) {
            alert('you pressed enter ^_^');
        }
    }
});

http://jsfiddle.net/tThq5/1/