<form id="f">
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input parsley-type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email" parsley-trigger="keyup">
</div>
</form>
<script>
$(function(){
$('#f').parsley('validate');
});
</script>
而不是表单元素我想验证div元素中的内容,是否可能?
答案 0 :(得分:5)
Parsley无法验证div / span元素内的文本。但是,您可以完美地验证不在表单标记内的输入,在您的示例中,您可以执行$('#exampleInputEmail1').parsley('validate');
答案 1 :(得分:3)
我已经能够(ab)使用优秀的Parsley验证器来处理非输入元素,
var inputField = $J('<input id="someRandomID" type="text" data-parsley-type="alphanum" data-parsley-required="true" >');
var parsleyHandle = inputField.parsley();
inputField.val('wronginput!@#!#!@#');
console.log(parsleyHandle.isValid()); // should be false
inputField.val('correctinput');
console.log(parsleyHandle.isValid()); // should be true
显然,价值的来源可以是任何东西 - div,span等。
祝你好运
答案 2 :(得分:2)
我有类似的问题。在SharePoint 2013中(至少在Visual Web部件中)直接在标记中添加表单会导致悲伤。 SP将形成&#39;它通过添加一个巨大的生成标记blob并改变外观和感觉。虽然可能有办法解决 问题,但我想快速将Parsley添加到具有许多输入的表中,而不会使用SP生成的表单。我的解决方案是在呈现UI之后使用jQuery $ .wrap()。奇迹般有效。是的,它仍然使用表单元素,但也许您出于类似的原因避免使用表单。 试试这个JSFiddle
<div id='container'>
<button type="button" id="save">Save</button>
<table>
<tr>
<td><input type='number' min='0' max='999' /></td>
... many more inputs
</tr>
...
</table>
</div>
<script ... >
$(document).ready(function(){
$("#container").wrap("<form id='fooForm'></form>");
var options = {
uiEnabled: true,
errorsWrapper: '',
excluded: '.inActive'
};
// create the validator
$("#fooForm").parsley(options);
// wire up click event for the save button
$("#save").click(function () {
// react to form valid state
// calling parsley again only returns the
// ref to the original, does not duplicate
var validator = $("#fooForm").parsley();
validator.validate();
// handle validator.isValid();
// ajax form post or other
});
});
</script>