Моя проверка формы не работает должным образом - PullRequest
1 голос
/ 24 ноября 2010

Я делаю проверку поля электронной почты. Для этого я написал HTML-код, подобный этому:

<form action="#">
           <span class="email-field" id="email-field">
             <input type="text" name="email-id" onFocus="if(this.value=='Your email ID'){this.value=''}" onBlur="if(this.value==''){this.value='Your email ID'}" id="email-id" />
             <input type="text" name="email-id" onFocus="if(this.value=='Please enter email ID'){this.value=''}" onBlur="if(this.value==''){this.value='Please enter email ID'}" id="error-email-id" class="hide"/>
           </span>
           <input type="submit" id="submit-button" class="subscribe-button" value="">

</form>

Jquery, который я написал, для этого:

$(document).ready(function() {
  var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
  URL = 'http://localhost:8000/'


  $("#submit-button").click(function() {
   email = $("#email-id").val()

 if($.trim($("#email-id").val()) === 'Your email ID' || !(filter.test($("#email").val())) ) {
  $('#error-email-id').fadeIn('slow').removeClass("hide");
  $('#email-id').fadeOut('normal').addClass("hide");
  $('#email-field').addClass("error-highlight");
  return false;
 }
 else {

  $.ajax({
  type: 'POST',
  url: URL + "validate/" ,
  data: {"email-id": email},
  success: function(data) {
  },
  dataType: "json",
  });
  $('#form').fadeOut('normal').addClass("hide");
  $('#notification').fadeIn('slow').removeClass("show")
  return false;
 }


  });

Сценарий такой: - 1. Первый раз, когда я ввожу email, и если он correct, он делает successful call для этого url. 2. Если я введу wr ong email или validation fails, это даст мне соответствующий класс, который является полем ввода текста id 'error-email-id'. Но когда я нажимаю submit button Нет JS call произойдет. То есть Он не называет Любой Jquery Так что нет URL. Это остается static один.
Заранее спасибо !!!

1 Ответ

0 голосов
/ 24 ноября 2010

Используя return false;, вы предотвращаете отправку формы обычным способом. Вам нужно вручную отправить форму, если проверка прошла успешно (при условии, что вы добавили идентификатор regForm к элементу form):

$.ajax({
  type: 'POST',
  url: URL + "validate/" ,
  data: {"email-id": email},
  success: function(data) {
    $('#regForm').submit();
  },    // ...

Возможно, вы хотите проверить ответ сервера data (из серверной части проверки формы) в функции успеха, прежде чем отправлять форму.

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