我想将我的函数添加到jquery验证中。没有链接到任何html元素,只需在"验证"事件发生。我只是尝试以下方式:
$('#form1').validate({
rules: {
hours: true
}
});
$.validator.addMethod("hours", function (value, element, param) {
return false;
});
它不起作用。如何正确地做到这一点?
已添加
HTML:
<form action="/Home/Valid8" id="form1" method="post" name="form1"><input name="__RequestVerificationToken" type="hidden" value="7xLtyNBlPK1kZ3YD5BQwtbxNq2kQEq1M-t1zq3ZCUs8gnUjStQNJ14QEybjo_tbU_x2QD0KfT79YoJg4CqhuaIir73fVJSf2V8CI4crUxJI1" /> <div class="form-horizontal">
<div class="form-group">
<label class="control-label col-md-2" for="Number">Number</label>
<div class="col-md-10">
<input class="form-control text-box single-line" data-val="true" data-val-number="The field Number must be a number." data-val-range="The field Number must be between 0 and 24." data-val-range-max="24" data-val-range-min="0" data-val-required="The Number field is required." id="Number" name="Number" type="number" value="0" />
<span class="field-validation-valid text-danger" data-valmsg-for="Number" data-valmsg-replace="true"></span>
</div>
</div>
<div>
<div class="form-control-static input-validation-error"
data-val="true"
data-val-number="The field Number must be a number."
data-val-hours="The field Number must be between 0 and 24."
data-val-hours-max="24"
data-val-required="The Number field is required."
id="Number2" name="Number2" />
<br />
<span class="text-danger field-validation-valid" data-valmsg-for="Number2" data-valmsg-replace="true"></span>
</div>
<input type="button" id="btnSet" value="set" />
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
</form>
脚本:
<script>
$(function () {
$('#btnSet').on('click', function () {
$('#Number2').html('-5');
});
});
$('#form1').validate({
rules: {
Number2: {
hours: true
}
}
});
$.validator.addMethod("hours", function (value, element, param) {
//var r = (value > 0)
var r = false;
return r;
}, 'Error Message Here');
$.validator.unobtrusive.adapters.addSingleVal("hours", "max");
</script>
btnSet只是用于模拟用户的动作。 当我点击&#34;提交&#34;页面正在重新加载(即使第一个字段的验证器不起作用)。如果我删除
$('#form1').validate({
rules: {
Number2: {
hours: true
}
}
});
然后第一场的验证者工作
答案 0 :(得分:0)
如何使用.addMethod()
:
您未能将规则分配给输入字段。如果没有看到您的HTML,我就不知道该字段或其实际的name
。
$('#form1').validate({
rules: {
yourField: { // <-- the field NAME attribute
hours: true
}
}
});
您还需要定义错误消息...
$.validator.addMethod("hours", function (value, element, param) {
return false;
}, 'Error Message Here');
DEMO:http://jsfiddle.net/efqoLwr7/
&#34;我想将我的函数添加到jquery验证中。没有链接到任何html元素,只需在&#34;验证&#34;事件发生。&#34;
你必须准确解释你想做什么。您只能为输入字段分配规则/方法;你不能随时运行任何方法。
.addMethod()
方法仅用于创建分配给一个或多个输入字段的新/自定义规则。
没有&#34;验证&#34;事件。当您{{1}中的相关元素发生focusout
,keyup
或按钮click
事件时,jQuery Validate插件会在指定的输入字段上触发声明的规则/方法}}
否则,您可以使用自己的功能覆盖各种选项,以便自定义某些行为。 Refer to the documentation for the complete list of options