Не удается очистить форму после отправки с помощью плагина проверки в jQuery - PullRequest
0 голосов
/ 20 апреля 2010

Я новичок в jQuery, и у меня возникла проблема при попытке создать форму.Я использую плагин Validation для проверки электронной почты (одно из полей формы).Когда я нажимаю кнопку «Отправить», я хочу вызвать свою собственную функцию, потому что я хочу сохранить данные в файле XML.

Это моя кнопка: (как я понял, плагин использует «submit» для понимания кнопки)

<input type="submit" name="submit" class="submit" id="submit_btn" value="Send"/>

, а вот скрипт для проверки:

 <script type="text/javascript">
  $(document).ready(function() {

        //this is my form
 $("#contactForm").validate();

 /*save the valid data in the xml*/
 $(".submit").click(function() { 
 var email = $("input#email").val();
 var subject = $("input#subject").val();
 var message = $("textarea#message").val();

 if (email == "" || !$("#contactForm").valid()) {
   return false;
  }    

 var dataString = 'email='+ email + '&subject=' + subject + '&message=' + message;
 //alert("DATA: " +dataString);  

  $.ajax({
     type: "POST",
     url: "SaveData.jsp",
     data: dataString,  
     success: function(data){}   
  });

  return false;
});
});
</script>

В целом все работает нормально, но у меня есть две основные проблемы.Когда я нажимаю кнопку в начале, когда все формы пусты, я не получаю сообщения для требуемого поля.Также, когда данные действительны, и я делаю отправку, форма не становится понятной после отправки.

Если я удалил этот код скрипта, эти действия работают правильно, но я не могу сохранить данные!

Кто-нибудь знает, что не так?

Большое спасибо!


Я наконец-то что-то нашел.Я изменил строку:

$(".submit").click(function() {....}

на эту:

submitHandler: function() { ....}

Так что теперь, когда я нажимаю кнопку, я получаю правильное сообщение для обязательного поля.Единственное, что я пока не нашел, это как очистить форму после отправки.Я знаю, как сделать это вручную в другой функции, но я увидел, что плагин тоже делает это.Поэтому я подумал, что, вероятно, лучше использовать тот, который есть у плагина.

Так кто-нибудь знает, что это не так?

Спасибо

1 Ответ

1 голос
/ 21 апреля 2010

Сначала сохраните ссылку на ваш валидатор, например:

var validator =  $("#contactForm").validate();

В обработчике $.ajax success или в другом месте, если хотите, вы можете вызвать это:

validator.resetForm();

Вы можете прочитать документы для .resetForm() здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...