【发布时间】:2020-02-20 19:47:34
【问题描述】:
我知道我最近一直在询问有关 jQuery 验证的问题,但我认为我现在的问题归结为最基本的问题。
如果我有这个 HTML 页面:
<html>
<head>
<title>validation test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/jquery.validate.js"></script>
</head>
<body>
<form id="theform">
<div id="num" name="num">86</div>
</form>
<script type="text/javascript">
var validationObject = {
rules: {
num: {
numtest:true
}
}
};
$.validator.addMethod("numtest", function(value, element) {
return value == 42;
});
$('form').validate(validationObject);
if ($("form").valid())
alert("VALID");
else
alert ("INVALID");
</script>
</body>
</html>
然后我希望警报是"INVALID",因为num 是86 而不是42。但我得到的是"VALID";我定义的用于验证的函数没有被调用(我在return value == 42; 上设置了一个断点,它永远不会被命中)。为什么是这样?如何确保调用验证函数?
【问题讨论】:
-
我不熟悉该插件,但您正在尝试对不是表单元素的
div执行验证 -
是的,我正在编写的实际代码,这是一个有点奇怪的情况,我想验证一堆下拉列表是否加起来就是 div 中的值。所以这就是我验证 div 的原因。但即使我将其更改为文本字段,它仍然无法正常工作...
-
不可能。更改为
input type='text'修复它:jsfiddle.net/c38uxh6m
标签: javascript jquery jquery-validate