2010-11-24 3 views
1

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

<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 У меня есть writte для этого:

$(document).ready(function() { 
    var filter = /^([a-zA-Z0-9_.-])[email protected](([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; 
} 


    }); 

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

+0

Возможно, вы захотите проверить форматирование кода, кажется, что пары скобок отсутствуют – manraj82

ответ

0

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

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

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

Смежные вопросы