2013-07-01 100 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

我會嘗試了這一點,並讓你知道! –