2010-05-13 36 views
2

我正在使用jquery验证asp.net表单(母版页内的内容)。所需的字段验证所有的作品很好,但我有一个字段是不是必需的,但如果它确实有文本,那么它需要在正确的格式。 jquery验证不正确的文本就好,但是当文本为空时,它会停止提交表单(尽管没有错误信息)。任何人都有一个想法,为什么这可能会发生,或者该怎么办?当非必填字段为空时,jquery验证会停止页面提交

// Add validation rule for email 
      if ($("input[id$='TextBoxEmail']").length) { 
       $("input[id$='TextBoxEmail']").rules('add', { 
        required: false, 
        email: true, 
        messages: { 
         email: 'Please enter a valid email.' 
        } 
       }); 
      } 

回答

0

我们发现解决方法是根据我们的标准手动删除验证。

// Add validation rule for first name (default Person type is Individual so the validation is needed as default) 
      if ($("input[id$='TextBoxFirstName']").length) { 
       $("input[id$='TextBoxFirstName']").rules('add', { 
        required: true, 
        messages: { 
         required: 'First Name is required for individuals.' 
        } 
       }); 
      } 

// Add event for checking if first name validation is needed 
      $('select[id$=DropDownListPersonType]').change(function() { 
       if ($('select[id$=DropDownListPersonType] option:selected').text() == 'Individual') { 
        // Add validation rule 
        $("input[id$='TextBoxFirstName']").rules('add', { 
         required: true, 
         messages: { 
          email: 'First Name is required for individuals.' 
         } 
        }); 
       } 
       else { 
        // remove rule 
        $("input[id$='TextBoxFirstName']").rules("remove"); 
       } 
      }); 
0

我刚刚建立了一个类似的测试,并不能复制的问题(见下面的代码):

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#test").validate(); 

     if ($("input[id$='txtText']").length) { 
      $("input[id$='txtText']").rules('add', { 
       required: false, 
       email: true, 
       messages: { 
        email: 'Please enter a valid email.' 
       } 
      }); 
     } 
    }); 
</script> 

<form id="test"> 
    <input type="text" id="txtText" /> 
    <input type="submit" /> 
</form> 

我使用jQuery 1.5.1和最新jquery.validate.min.js

我只能建议你让jQuery选择器更具体,因为id$='TextBoxEmail'意味着以'TextBoxEmail'结尾。如果你有相互矛盾的字段名称,这可能是一个问题?

相关问题