我在一个页面中以两种形式使用parsley js。当我点击type ='button'字段并验证第一个表单只检查表单的3个字段时,我想触发欧芹验证器。最初,表格中包含大约7个字段用于验证。到目前为止,我无法使其发挥作用。试过this,但没有运气。
任何想法?
更新:这是我的代码;
<div class = 'two'>
<input type='text' id='firstname' name='firstname' />
</div>
$('#form').parsley({
excluded: '.two input'
});
$('#form').parsley('validate');
我只是试图排除一个字段并测试表单是否正在验证,因为我想要它。但它仍然验证了css类'two'中的输入字段。这就是我到目前为止所做的一切。没有头绪..
答案 0 :(得分:11)
您的代码存在一些问题,特别是此行:
<dir classs = 'two'>
应该是
<div class = 'two'>
也就是说,您有dir
而不是div
和classs
而不是class
。您还应该使用$('#form').parsley().validate()
代替$('#form').parsley('validate')
。
以下代码可以使用:
<form method='post' id='form'>
<div class = 'two'>
<input type='text' id='firstname' name='firstname' required />
</div>
<div>
<input type='text' id='thisisrequired' name='thisisrequired' required />
</div>
<button type="button" id="submit-form">Submit</button>
</form>
<script>
$(document).ready(function() {
$('#form').parsley({
excluded: '.two input'
});
$("#submit-form").on('click', function() {
$('#form').parsley().validate();
if ($('#form').parsley().isValid()) {
console.log('valid');
} else {
console.log('not valid');
}
});
});
</script>
您可以在this jsfiddle
中查看更完整的工作示例对于您的情况,您应该考虑使用data-parsley-group
(see the docs)来获得相同的结果,并使用以下代码:
<form method='post' id='form'>
<div>
<input type='text' id='firstname' name='firstname' data-parsley-group="first"
required />
</div>
<div>
<input type='text' id='thisisrequired' name='thisisrequired'
data-parsley-group="second" required />
</div>
<button type="button" id="submit-form">Submit</button>
</form>
<script>
$(document).ready(function() {
$('#form').parsley();
$("#submit-form").on('click', function() {
$('#form').parsley().validate("second");
if ($('#form').parsley().isValid()) {
console.log('valid');
} else {
console.log('not valid');
}
});
});
</script>
两者之间的区别在于,在第一个示例中,您重新定义了excluded
选项。在第二个示例中,您将使用data-parsley-group
并仅验证该组。
有关完整示例,请访问this jsfiddle(您可以对其进行测试并将$('#form').parsley().validate("second");
更改为$('#form').parsley().validate("first");
以查看会发生的情况。)
答案 1 :(得分:0)
只是添加上面的答案,才能正常工作, 在isValid中也使用组名,即$('#form')。parsley()。isValid(“second”))。
<script>
$(document).ready(function() {
$('#form').parsley();
$("#submit-form").on('click', function() {
$('#form').parsley().validate("second");
if ($('#form').parsley().isValid(**"second"**)) {
console.log('valid');
} else {
console.log('not valid');
}
});
});
</script>