jQuery自动完成显示值而不是标签
我正在使用。下面是我如何使用它jQuery自动完成显示值而不是标签,jquery,jquery-ui,autocomplete,jquery-ui-autocomplete,Jquery,Jquery Ui,Autocomplete,Jquery Ui Autocomplete,我正在使用。下面是我如何使用它 <form action="go.php" method="post"> <input id="txt" type="text" /> </form> <script> $('#txt').autocomplete({ source: [{'label': 'milan', 'value': '1'}, {'label': 'minos', 'value': '2'}] }
<form action="go.php" method="post">
<input id="txt" type="text" />
</form>
<script>
$('#txt').autocomplete({
source: [{'label': 'milan', 'value': '1'}, {'label': 'minos', 'value': '2'}]
})
</script>
当我输入“米”时,米兰和米诺斯出现了。没问题。然而,当我关注它们时,向下键的txt值会变为米兰的1value,而不是米兰。当我专注于米兰时,我如何向米兰展示。谢谢您必须在焦点上告诉代码才能执行某些操作
$('#txt').autocomplete({
source: [{'label': 'milan', 'value': '1'}, {'label': 'minos', 'value': '2'}],
focus: function( event, ui ) {
$(this).val(ui.item.label);
return false;
},
select: function( event, ui ) {
$(this).val(ui.item.label);
return false;
}
});
因为select事件的默认行为是显示值而不是标签,所以您只需: -如上文所述,返回false。 -或者,您可以使用event.preventDefault来阻止执行事件的默认操作,然后按如下所示写下需要执行的操作:
请参考安德鲁·惠特克(Andrew Whitaker)在这篇文章中的回答>-因为这对理解很有帮助。我不想完全扼杀焦点。我只希望txt显示标签而不是值
$('#txt').autocomplete({
source: [{'label': 'milan', 'value': '1'}, {'label': 'minos', 'value': '2'}],
focus: function( event, ui ) {
event.preventDefault();
$('#txt').val(ui.item.label);
},
select: function( event, ui ) {
event.preventDefault();
$('#txt').val(ui.item.label);
}
});