Я использую автозаполнение JQuery UI. Мне нужно было, чтобы это MustMatch поэтому я его так:Автозаполнение Изменение события после нажатия кнопки
$('#MyAutoComplete').autocomplete({
source: result,
minLength: 1,
change: function (event, ui) {
if (!ui.item) {
$('#MyAutoComplete').val('');
}
}
});
Не беспокойтесь о результате, как поле заполняется и работает, как ожидалось. Когда кто-то вводит значение, не входящее в список, и нажимает на поле, поле стирается, как я желал, за исключением случаев, когда я нажимаю кнопку отправки. Упрощенная версия моего представить обработчик:
$('#MyButton').get(0).onclick = $('#MyForm').get(0).onsubmit = (function() {
$('#MyForm').validate();
var isValid = $('#MyForm').valid();
if (!isValid) {
return false;
}
});
Если я нажимаю непосредственно от сфокусированного автозаполнения с плохими данными на кнопку отправки, то представить событие происходит перед изменением для автозаполнения. Таким образом, плохие данные передаются. Любое другое действие очищает плохие данные, которые приводят к сбою отправки (поскольку это поле требуется).
Любые идеи, как обойти это?
Я попытался добавить каждое из них в начало события отправки. Ничего не изменило.
$('#MyAutoComeplete').data('autocomplete')._trigger('change');
$('#MyAutoComplete').blur();
$('#MyButton').focus();
ли функция выпадающий требуют более высокой версии сценария, то я использую? Если я это:
$('#MyAutoComplete').autocomplete({
source: result,
minLength: 1,
change: function (event, ui) {
if (!ui.item) {
$('#MyAutoComplete').val('');
}
}
});
И превратить его в это:
$('#MyAutoComplete').combobox({
source: result,
minLength: 1,
change: function (event, ui) {
if (!ui.item) {
$('#MyAutoComplete').val('');
}
}
});
Я получаю эту ошибку:
JavaScript ошибка во время выполнения: Объект не поддерживает свойство или метод 'COMBOBOX'
Я использую:
JQuery UI 1.8.7
http://jqueryui.com/changelog/1.8.7/ показывает, что выпадающий поддерживается для версии – dave
I получил версию JQuery UI с виджетами combobox, и я получаю тот же результат. Я могу щелкнуть прямо из выпадающего списка к кнопке отправки и отправить плохие данные. –