Сброс / Очистка формы с помощью jQuery

0

Попытка очистить форму после отправки через нажатие кнопки. "Явная форма" jQuery работает в другом проекте, который я тестировал, но по какой-то причине он не работает здесь. Обе функции .validateEngine и .LocalStorage.save срабатывают и работают нормально. Любое понимание было бы оценено.

function clicked (e) 
{
  if (confirm('Are you sure you want to submit?')) 
    {
       if ($("#formID").validationEngine('validate'))
       {
           my.LocalStorage.save();

        //clear form
            var $form = $("#form");
            $form.find('input:text, input:password, input:file, select, textarea').val('');
            $form.find('input:radio, input:checkbox')
            .removeAttr('checked').removeAttr('selected');

   }
}   
e.preventDefault();  
}

HTML

<form id="formID" name="myForm">    

 <input class="validate[required]" type="text" id="agree" name="agree"/>         
 <button type="submit" value="Save" id="Save" onclick="clicked(event);">Submit Survey</button>

</form>
Теги:

2 ответа

4
Лучший ответ

У вас неправильный идентификатор формы. Изменить:

var $form = $("#form");

чтобы:

var $form = $("#formID");

Кроме того, чтобы сохранить выбор одной и той же формы дважды, было бы целесообразно перенести объявление этой переменной в первую строку внутри if(confirm(...){, например:

function clicked (e) {
    if (confirm('Are you sure you want to submit?')) {
        var $form = $("#formID");                
        if ($form.validationEngine('validate')) {
            my.LocalStorage.save();    
            //clear form
            $form.find('input:text, input:password, input:file, select, textarea').val('');
            $form.find('input:radio, input:checkbox')
                 .removeAttr('checked').removeAttr('selected');
        }
    }   
    e.preventDefault();  
}
  • 0
    ха-ха, после того, как я так долго на него смотрел, я забыл, что раньше мне приходилось менять идентификатор формы. Спасибо!
  • 0
    Я не уверен, что точно понимаю структуру, которую вы предлагаете. Если бы у меня было несколько текстовых полей, а некоторые не были нужны, стерлось ли это, что было заполнено, если validate не вернул true?
Показать ещё 2 комментария
0

call $("#formID").reset(); Это стандартный вызов в jquery для сброса формы.

  • 0
    Это, кажется, просто обновляет страницу при попытке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню