Desidero dare all'utente la possibilità di aggiungere la propria variante, non solo quella suggerita. Ma quando digito qualcosa nel campo e clic su INVIO il mio modulo invia.Completamento dell'interfaccia utente jQuery: come consentire il testo libero
Quindi ho tentato di catturare l'evento keydown per il mio campo, ma in questo caso ho perso la possibilità di selezionare una variante dai suggerimenti utilizzando le frecce e immettere i tasti perché il parametro ui non è definito.
$('#field_id').on('keydown', function(event) {
if (event.keyCode == $.ui.keyCode.ENTER
|| event.keyCode == $.ui.keyCode.NUMPAD_ENTER)
{
$('#field_id').trigger('autocompleteselect');
}
});
$('#field_id').autocomplete({
source: [{"id":"20","value":"This is not mandatory decline reason"},{"id":"21","value":"You are have to be rejected"}]
minLength: 0
}).on('autocompleteselect', function(event, ui) {
// if I click on suggestion using mouse - everything is ok
// but not for ENTER-key choosing
// I want something like that:
if (ui.item) {
id = ui.item.id;
value = ui.item.value;
} else {
id = 'my_new_item';
value = $(this).val();
}
return false;
});
Non sono sicuro del motivo per cui il parametro ui non è definito .... ma perché non basta mettere un window.alert (event.keyCode) prima dell'istruzione if. Quindi puoi provare a farlo digitando enter e keypad per vedere come vengono visualizzati i numeri. – rnirnber
anche ... si potrebbe provare l'evento keyup invece del keydown – rnirnber