如何通过自动完成点击来关注好处?

时间:2011-10-04 00:28:28

标签: javascript jquery-plugins javascript-events jquery

我有一个输入文本,当它失去焦点(焦点)时脚本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

当用户点击自动完成BOX时,输入失去焦点,并将值“va”发送到服务器而不是点击的值。

问题是:如何控制点击事件以在自动完成中发送点击的值而不是写入。

1 个答案:

答案 0 :(得分: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;                    
});