2010-08-06 87 views
-1

我有我的问题的一个简化版本在这里: http://www.arianhojat.com/temp/jquery/dynamic_validate/test.html删除动态验证与jQuery验证插件

基本上我有一个邮件规则,基于一个复选框我删除它...但它仍然是不被删除...我尝试将它移动到自己的规则与“添加”,然后试图删除通过其随附的“删除”功能,但仍然是同样的问题。

所以当你填写你的名字后,尝试提交。 它将错误的电子邮件字段... 然后检查复选框,它应该删除#email的验证,它只能删除它的一半。就像如果你尝试用名字提交,它允许它......但现在在电子邮件字段中输入一些内容并尝试提交...它会错误地说它无效(但验证已被删除?)

谢谢!

代码是在这里以供参考:

$(document).ready(function(){ 


    $("#contactForm").validate({ 
onfocusout: false, 
debug: true, 

    rules: {  
     fname: { 
     required: true 
     } 
    }, 

    messages: {    
     fname: { 
     required: "* Please enter a first name" 
     } 
    }, 

    errorLabelContainer: "#messageBox", 
    wrapper: "li", 
    submitHandler: function(form) {    

     alert('Submitted'); 
     return false; 
    } 
    }); 

    $("#email").rules("add", { 
    required: true, 
    email: true, 
    messages: { 
     required: "* Please enter a sweet email address", 
     email: "* Please enter a sweet valid email address" 
    } 
    }); 

    $('#no_email').bind('change', function(event) { 

    if($(this).attr('checked')) { 
console.log('removed?'); 

     $("#email").rules("remove"); //, "required email" ... still doesnt work if specify the rules to remove 

    } else { 

console.log('re-added?'); 
     $("#email").rules("add", { 
     required: true, 
     email: true, 
     messages: { 
      required: "* Please enter an awesome email address", 
      email: "* Please enter an awesome valid email address" 
     } 
     }); 

    } //else 


    $("#contactForm").validate().element("#email"); 



    }); 


}); 
.... 

<form id="contactForm" action="doesnt_exist_yet2.html" method="post"> 

    <ul id="messageBox"></ul> 

    <div style=""> 
    <p>First name:</p> 
    <input type="text" name="fname" id="fname" class="fname" maxlength="100"/> 
    </div> 


    <div style=""> 
    <p>Your Email Address</p> 
    <input type="text" name="email" id="email" class="email" maxlength="100"/> 
    </div> 


    <br/><br/> 
    <input type="checkbox" name="no_email" id="no_email" /> Turn off validation for EMAIL 




    <input type="submit" name="submit_btn" id="submit_btn" value="Submit"> 
</form> 

回答

1

我想我解决它,不能有#email和邮件规则。我将我的字段更改为#myemail并认为它现在可用。 errrrr!