当仅改变输入焦点时,激活jquery焦点

时间:2013-07-01 08:15:49

标签: javascript jquery

我使用以下代码将选定的div值添加到输入中。

    var lastFocus;
    $('.num-button').click(function(e){
        e.preventDefault();
        e.stopPropagation();
        //addOrRemoveWatermark(lastFocus);
        $(lastFocus).val($(lastFocus).val() + $(this).children('span').html());
    });
    $('.del').click(function(e){
        e.preventDefault();
        e.stopPropagation();
        //addOrRemoveWatermark(lastFocus);
        $(lastFocus).val(function(index, text){
            return text.replace(/(\s+)?.$/, '');
        });
    })
如果输入面板我有以下

示例图像!这是为触摸设备开发的,因此是键盘。

enter image description here

该脚本可以正常工作,在键盘上按下每个按钮时增加值。我面临的问题是我想在用户输入金额后运行ajax调用的房间号。但是,由于每次按钮单击都会删除焦点,因此当焦点更改为另一个输入时,如何运行脚本。我尝试了jquery .focusout()方法,但每次用户点击数字按钮时都会被触发。

如果有人能建议我解决这个问题会有很大的帮助! 谢谢!

1 个答案:

答案 0 :(得分:1)

也许您可以使用以下内容延迟请求:

var roomNoChanged = false;
$('#room-number').change(function() {
    roomNoChanged = true;
});

$('#table-number, #no-of-guests').focus(function() {
    if(roomNoChanged) {
        roomNoChanged = false;
        $.post(...)
    }
});