Загрузка файла форм jquery: почему значения полей сбрасываются?

У меня есть форма с некоторыми элементами, такими как:

<input type="text" name="maxResultsPlain"
                    id="maxResultsPlain" class="number" value="10">

Форма включает один ввод типа «файл». Весь бизнес подключен к серверу REST через $(form).ajaxSubmit(submitOptions), вызываемый из submitHandler плагина проверки, http://bassistance.de/jquery-plugins/jquery-plugin-validation/.

Всякий раз, когда я отправляю, поля ввода формы возвращаются к своим значениям по умолчанию в соответствии с атрибутом value. Есть ли способ предотвратить это?

Точка останова Chrome DOM предполагает, что это происходит в результате махинаций плагина проверки, поэтому я подозреваю, что проблема здесь.

Центральное место в коде:

$("#query-upload").validate({
    submitHandler: function(form) {
        $(form).ajaxSubmit(submitOptions);
    }
});

person bmargulies    schedule 28.06.2011    source источник
comment
Можете ли вы проверить данные, возвращаемые сервером формы, потому что, как вы сказали, вы используете стандарт REST, есть вероятность, что содержимое формы загружается с сервера!... Если вы хотите, чтобы поля формы были пустыми, используйте $(form).ajaxSubmit({ clearForm:true, resetForm:false}); Если ничего из этого не помогает, проверьте, установлена ​​ли у вас последняя версия jquery-form или установите поля формы вручную с помощью jQuery, а также попробуйте установить точку останова поверх самого ajaxSubmit, чтобы увидеть, что происходит с помощью firebug...   -  person Beygi    schedule 29.06.2011
comment
Я уверен, что это не так. Я написал каждую строчку этого.   -  person bmargulies    schedule 29.06.2011
comment
Боюсь, но я видел исходный код jquery-form, он пропустит проверку формы и очистит, если эти параметры ложны, и в jquery-form нет другой ссылки на эту функцию, кроме функции ajaxSubmit, не могли бы вы установить точка останова там, и проверьте это!...   -  person Beygi    schedule 29.06.2011
comment
Да, но трассировка в отладчике указывает на проверку, а не формы.   -  person bmargulies    schedule 29.06.2011
comment
Извините, форма размещена с использованием ajax, потому что загрузка файла в форму может привести к неожиданной работе приложения...   -  person Beygi    schedule 29.06.2011
comment
проверить функцию, вы используете другой плагин, но форму jquery и jquery, потому что я не вижу функцию проверки в форме jquery, извините...   -  person Beygi    schedule 29.06.2011
comment
Как я писал при редактировании, я использую плагин проверки. Готовьтесь к дальнейшему редактированию.   -  person bmargulies    schedule 29.06.2011
comment
на самом деле я ответил на этот вопрос задолго до того, как добавил комментарий, думая, что вы используете валидатор jQuery, и я бы тоже проверил его, в настоящее время у меня есть jquery-validate 1.8.1, и нет кода, который мог бы изменить значения полей. я удалил этот ответ, думал, что ошибаюсь..   -  person Beygi    schedule 29.06.2011
comment
Подозреваю, что какое-то изменение класса там провоцирует браузер. Я закодировал очевидный обходной путь.   -  person bmargulies    schedule 29.06.2011
comment
Я смоделировал всю информацию, которую вы мне дали, в простой проект, но проблем не возникло, я думаю, нам нужно больше информации.   -  person Beygi    schedule 29.06.2011


Ответы (1)


Существуют параметры resetForm и clearForm, которые вы можете попробовать и установить в false, чтобы увидеть, поможет.

person amurra    schedule 28.06.2011
comment
И установка их явно на false не помогла. - person bmargulies; 28.06.2011