2011-10-04 44 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;      
});