来自网站的欧芹示例不起作用?
Parsley example from site does not work?
我使用Parsley example from the documetation page site:
我在硬盘上保存了一个页面,内容如下:
<form id="demo-form" data-parsley-validate>
<label for="question">Do you code? *</label>
<p>
<input type="radio" name="question1" value="true" required /> Yes
<input type="radio" name="question1" value="false" /> No
</p>
<label for="languages">If yes, in which language(s)?</label>
<input type="text" class="form-control" name="languages" data-parsley-conditionalrequired='["[name=\"question1\"]:checked", "yes"]' data-parsley-validate-if-empty data-parsley-success-class="" data-parsley-conditionalrequired-message="This value is required since you are a programmer!" />
<label for="question">Do you eat dog food? *</label>
<p>
<input type="radio" name="question2" value="yes" required /> Yes
<input type="radio" name="question2" value="no" /> No
</p>
<label for="why">If no, why?</label>
<input type="text" class="form-control" name="why" data-parsley-conditionalrequired='["[name=\"question2\"]:checked", "no"]' data-parsley-validate-if-empty data-parsley-success-class="" data-parsley-conditionalrequired-message="This value is required since you do not eat dog food!" />
<input type="submit" class="btn btn-default pull-right" />
</form>
<script type="text/javascript">
window.ParsleyConfig = {
validators: {
conditionalrequired: {
fn: function (value, requirements) {
// if requirements[0] value does not meet requirements[1] expectation, field is required
if (requirements[1] == $(requirements[0]).val() && '' == value)
return false;
return true;
},
priority: 32
}
}
};
</script>
<script type="text/javascript" src="http://parsleyjs.org/dist/parsley.js"></script>
但是任何自定义验证器似乎都不起作用。
我的意思是,自定义验证器的逻辑没有得到尊重。 "If yes, in which language(s)?"我select是的,不填语言...
问题出在哪里?
A fiddle 也可用 HERE
改变
'["[name=\"question1\"]:checked", "yes"]'
在
<input type="text" class="form-control" name="languages" data-parsley-conditionalrequired='["[name=\"question1\"]:checked", "yes"]' data-parsley-validate-if-empty data-parsley-success-class="" data-parsley-conditionalrequired-message="This value is required since you are a programmer!" />
到
'["[name=\"question1\"]:checked", "true"]'
您必须使用 value
而不是
中的文字
<input type="radio" name="question1" value="true" required /> Yes
编辑
根据评论,另一种(更一致的)解决方案是更改 HTML 输入 value
s:
<input type="radio" name="question1" value="yes" required /> Yes
<input type="radio" name="question1" value="no" /> No
我使用Parsley example from the documetation page site:
我在硬盘上保存了一个页面,内容如下:
<form id="demo-form" data-parsley-validate>
<label for="question">Do you code? *</label>
<p>
<input type="radio" name="question1" value="true" required /> Yes
<input type="radio" name="question1" value="false" /> No
</p>
<label for="languages">If yes, in which language(s)?</label>
<input type="text" class="form-control" name="languages" data-parsley-conditionalrequired='["[name=\"question1\"]:checked", "yes"]' data-parsley-validate-if-empty data-parsley-success-class="" data-parsley-conditionalrequired-message="This value is required since you are a programmer!" />
<label for="question">Do you eat dog food? *</label>
<p>
<input type="radio" name="question2" value="yes" required /> Yes
<input type="radio" name="question2" value="no" /> No
</p>
<label for="why">If no, why?</label>
<input type="text" class="form-control" name="why" data-parsley-conditionalrequired='["[name=\"question2\"]:checked", "no"]' data-parsley-validate-if-empty data-parsley-success-class="" data-parsley-conditionalrequired-message="This value is required since you do not eat dog food!" />
<input type="submit" class="btn btn-default pull-right" />
</form>
<script type="text/javascript">
window.ParsleyConfig = {
validators: {
conditionalrequired: {
fn: function (value, requirements) {
// if requirements[0] value does not meet requirements[1] expectation, field is required
if (requirements[1] == $(requirements[0]).val() && '' == value)
return false;
return true;
},
priority: 32
}
}
};
</script>
<script type="text/javascript" src="http://parsleyjs.org/dist/parsley.js"></script>
但是任何自定义验证器似乎都不起作用。
我的意思是,自定义验证器的逻辑没有得到尊重。 "If yes, in which language(s)?"我select是的,不填语言...
问题出在哪里?
A fiddle 也可用 HERE
改变
'["[name=\"question1\"]:checked", "yes"]'
在
<input type="text" class="form-control" name="languages" data-parsley-conditionalrequired='["[name=\"question1\"]:checked", "yes"]' data-parsley-validate-if-empty data-parsley-success-class="" data-parsley-conditionalrequired-message="This value is required since you are a programmer!" />
到
'["[name=\"question1\"]:checked", "true"]'
您必须使用 value
而不是
<input type="radio" name="question1" value="true" required /> Yes
编辑
根据评论,另一种(更一致的)解决方案是更改 HTML 输入 value
s:
<input type="radio" name="question1" value="yes" required /> Yes
<input type="radio" name="question1" value="no" /> No