2011-10-04 46 views
1

我有一個輸入文本,當它失去焦點(事件的內容)的腳本POST(更新服務器中的文字),但是當我在自動完成選項點擊,發送文本是不同的,請看:如何利用自動完成點擊來聚焦良好?

<script> 
$(document).ready(function() { 
    var values = ["value1", "value2", "value3", "...", "value4"]; 
    $('input').bind('focusout', function() { 
     $.post('/add_value', $('form').serialize(), function(data) {}); 
    }); 
    $('input').autocomplete({source:values}); 
}); 
</script> 
<form> 
    <input type="text"/> 
</form> 

用戶在輸入寫道:「VA」,然後自動完成節目是這樣的:

value1 
value2 
value3 
value4 

當用戶單擊自動完成框中輸入失去焦點,併發送值「VA」到服務器和而不是點擊的價值。

問題是:如何控制點擊事件發送自動完成中的點擊值而不是writed。

+2

檢查'select'事件http://jqueryui.com/demos/autocomplete/#events –

回答

0

補充一點:

var send_now = true; 

$('input').bind('focusout', function() { 
    if (send_now) { 
      $.post('/add_value', $('form').serialize(), function(data) {}); 
     } 
    }); 

$('.attribute_name').autocomplete({ source: values}); 

$('form').delegate('input', 'autocompleteopen', function() {       
    send_now = false; 
}); 

$('form').delegate('input', 'autocompleteclose', function() { 
    $(this).focus(); 
    send_now = true;      
});