【问题标题】:How to focusout good with an autocomplete click?如何通过自动完成点击集中注意力?
【发布时间】:2011-10-04 00:28:27
【问题描述】:

我有一个输入文本,当它失去焦点(focusout)时,脚本 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”发送到服务器,而不是点击的值。

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

【问题讨论】:

标签: javascript jquery jquery-plugins jquery-events


【解决方案1】:

添加这个:

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;                    
});

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 2012-12-26
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多