Javascript 如何通过自动完成单击来聚焦好的内容?
我有一个输入文本,当它失去焦点时,脚本POST会更新服务器中的文本,但当我单击“自动完成”选项时,发送的文本不同,请看:Javascript 如何通过自动完成单击来聚焦好的内容?,javascript,jquery,jquery-plugins,jquery-events,Javascript,Jquery,Jquery Plugins,Jquery Events,我有一个输入文本,当它失去焦点时,脚本POST会更新服务器中的文本,但当我单击“自动完成”选项时,发送的文本不同,请看: <script> $(document).ready( function() { var values = ["value1", "value2", "value3", "...", "value4"]; $('input').bind( 'focusout', function() { $.post( '/add_value', $('f
<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发送到服务器,而不是单击的值
问题是:如何控制click事件以在autocomplete中而不是在writer中发送单击的值。添加以下内容:
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;
});
选中中的选择事件
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;
});