удалить динамическую проверку с помощью плагина Jquery Validate - PullRequest
0 голосов
/ 06 августа 2010

У меня есть упрощенная версия моей проблемы здесь: http://www.arianhojat.com/temp/jquery/dynamic_validate/test.html

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

Поэтому после того, как вы введете свое имя, попробуйте отправить.это будет ошибка в поле Email ... затем установите флажок, он должен удалить проверку для #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 Ответ

1 голос
/ 06 августа 2010

Я думаю, что решил это, не могу иметь правила #email и email.я изменил свое поле на #myemail и думаю, что оно работает сейчас.errrrr!

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