2011-09-18 48 views
0

我有下面的代碼 - http://jsfiddle.net/vcvsb/1/ - 每jQuery自動完成防止首先進入?

$(document).ready(function(e) { 
    $("input#autocomplete").autocomplete({ 
     source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] 
    }); 
    jQuery("#autocomplete").keypress(function (e) { 
     if (e.keyCode == 13) { 
      $('#buttontest').trigger('click'); 
      alert('crap, clicked'); 
     } 
    }); 
    }); 

我試圖設定,讓用戶可以用上下箭頭鍵移動 - 按下回車鍵,然後繼續輸入。我面臨的問題是,只要用戶在獲得自動完成響應後選擇回車,它會觸發按鈕單擊?

如何設置它,以便:

  1. 用戶可以使用箭頭鍵移動到一個選擇,然後按回車鍵
  2. 按下回車鍵後,用戶可以繼續鍵入
  3. 如果用戶再次輸入,則觸發點擊

回答

0

最好的解決方案是檢查是否有任何輸入字段的焦點,否則忽略ENTER。使用jQuery> = 1.6,你可以做到以下幾點:

if(e.keyCode == 13) { 
    if($("#input").is(":focus")) { 

     // then click the button 
     $("#button").click(); 
    } 

} 

這會忽略比你想要的任何其他ENTER事件;)