【问题标题】:custom parsley validation not working自定义欧芹验证不起作用
【发布时间】:2014-07-05 03:50:53
【问题描述】:

验证不适用于以下自定义验证(所有其他标准验证 html 属性都有效)。我已经删除了表格中不适用的输入。

 <form id="regForm" role="form" method="post" action="" accept-charset="UTF-8">
<div class="form-group">
        <label for="wards">Your Ward</label>



<select name="fields[ward]" class="form-control">
<option value="" selected="selected">SELECT WARD</option>
<option value="item">item 1</option>
</select>
        <p class="help-block">It is important that you select the ward your current membership records reside in!</p>
      </div>

      <div class="form-group">
        <label for="wardOther">Other Ward or Not in Australia?</label>
        <textarea class="form-control" id="wardOther" name="fields[wardOther]" rows="4"  data-parsley-conditionalrequired='[name=\"fields[ward]\"] option:selected' data-parsley-validate-if-empty data-parsley-success-class="" data-parsley-conditionalrequired-message="This value is required since you did not select an australian ward!"></textarea>
            <p class="help-block">Please tell us the Country, Stake, Ward, and Bishops Name you are attending from</p>
      </div>

<script>
$(document).ready(function() {

  $('#regForm').parsley({
    validators: {
      conditionalrequired: {
        fn: function (value, requirements) {
          console.log('fdsafds');
      if ($(requirements).val() == '' && '' == value)
      return false; 


          return true;
        },
        priority: 32
      }
    }
  });
});

</script>

console.log 没有触发。

【问题讨论】:

    标签: parsley.js


    【解决方案1】:

    客户验证器不适用于您的案例,因为您没有在表单定义中指定表单名称值和“data-parsley-validate”。

    <form id="regForm" role="form" method="post" action="" accept-charset="UTF-8">
    

    只需添加 name="regForm" 即可正常工作。

    <form id="regForm" name="regForm" role="form" method="post" action="" accept-charset="UTF-8" data-parsley-validate>
    

    【讨论】:

      【解决方案2】:

      我使用了一点 different approach 来创建自定义验证器。你可以在这里看到工作示例http://jsfiddle.net/Hmhjy/

      window.ParsleyValidator.addValidator('conditionalrequired', 
      function (value, requirement) {
          console.log('fdsafds');
          if ($(requirements).val() == '' && '' == value) {
              return false; 
          }
      
          return false;
      }, 32)
      .addMessage('en', 'conditionalrequired', 'This value is required since you did not select an australian ward!');
      
      $('#regForm').parsley();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-30
        • 1970-01-01
        • 2013-11-24
        • 2016-03-10
        • 2017-08-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多