2010-11-24 35 views
1

我正在进行电子邮件字段验证。为此,我写了一个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_.-])[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发生。那是它不叫任何Jquery所以没有URL。它仍然是一个static之一。
在此先感谢!

+0

你可能想检查代码的格式,似乎有几个括号丢失 – manraj82 2010-11-24 11:56:40

回答

0

通过使用return false;可以防止以正常方式提交表单。您需要手动提交表单,如果验证成功(假设你的ID regForm添加到form元素):

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

你可能要检查服务器的响应data(从的服务器端部分表单验证),然后再提交表单。