我有一个输入文本,当它失去焦点(焦点)时脚本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”发送到服务器而不是点击的值。
问题是:如何控制点击事件以在自动完成中发送点击的值而不是写入。
答案 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;
});