2013-07-01 78 views
1

我使用以下代码将选定的div值添加到输入中。当只有输入焦点发生变化时,jquery会将焦点聚焦

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

也许你可以用一些延迟请求如下所示:

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

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

我会尝试了这一点,并让你知道! –