以前隐藏的字段的jquery验证器

时间:2012-11-01 14:42:24

标签: jquery jquery-validate

有一个基于无线电隐藏/可见的字段。

所以在加载页面时,我们会根据无线电值隐藏它们

    $(document).ready(function() {

        if(edit) {
          populateData();
        }

        $(radio).change(function(){
            //here also we show hide text box based on radio value
        })

        function PopulateData() {
            //This does select radio and based on same show / hide text field
        }

       $("myForm").validate(); // attaching validate . At this point field could be hidden or visible


       $(savebutton).click(function(){

         /*This does not validate text 
          field (visibleBasedOnRadio) which was hidden and made visible by either of above */

          if( $("myForm").valid() == false) {
              return false;
          }
       });
    });

<form id="myForm">
<radio>
  <option 1>
  <option 2>
</radio>

<input type="text" id="visibleBasedOnRadio" class="required" style="display:none"/>
</form>

1 个答案:

答案 0 :(得分:0)

我不知道您使用什么框架用于表示逻辑。我会尝试尽可能地通用。

让我们在表单中添加两个变量。

  1. radioButtonValue - 保存所选单选按钮的值。比方说,例如option1或option2。您可以为此字段设置默认值,以便在页面加载时默认选择该特定选项。
  2. valueOfTheVisibleField - 此字段包含输入文本框的值,一旦选中单选按钮,该文本框就会显示。

    <form>
      <input type="radio" name="radioButtonValue" value="option1"> Option 1<br> //This is checked.
      <input type="radio" name="radioButtonValue" value="option2"> Option 2<br>
      <input type="text" id="visibleBasedOnRadio" class="required" name="valueOfTheVisibleField" style="display:none"/>
    </form>
    
  3. 现在在验证中首先检查单选按钮的值。仅当其值为option2时,即显示必填字段时...才检查文本框值是否存在。如果没有做任何与valueOfTheVisibleField字段相关的事情,因为它隐藏了。