Im having troubles trying to get the autocomplete to work properly.
It all looks ok to me but....
<script> $(function () { $("#customer-search").autocomplete({ source: 'Customer/GetCustomerByName', minLength: 3, select: function (event, ui) { $("#customer-search").val(ui.item.label); $("#selected-customer").val(ui.item.label); } }); }); </script> <div> <input id="customer-search" /> </div> @Html.Hidden("selected-customer")
However when I select an item from the dropdown the value is been applied to the textbox instead of the label.
What have I done wrong?
If I look at the source using firebug I can see that my hidden field is being updated correctly.
The default behavior of the select
event is to update the input
with ui.item.value
. This code runs after your event handler.
Simply return false
or call event.preventDefault()
to prevent this from occurring. I would also recommend doing something similar for the focus
event to prevent ui.item.value
from being placed in the input
as the user hovers over choices:
$("#customer-search").autocomplete({ /* snip */ select: function(event, ui) { event.preventDefault(); $("#customer-search").val(ui.item.label); $("#selected-customer").val(ui.item.label); }, focus: function(event, ui) { event.preventDefault(); $("#customer-search").val(ui.item.label); } });
Example: http://jsfiddle.net/andrewwhitaker/LCv8L/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With