我以前在其他网页上成功使用过这个定义。基本上它应该使字段成为必需字段,但如果只输入空格则失败(默认键入,即单个空格导致所需的检查通过)。我抛出一个警告只是为了查看处理程序何时被触发以及当时this
的值。它在我预期的时候被解雇了,价值就像我预期的那样。它应该返回false
,但显然它不是因为没有显示错误。如果我删除depends
函数并且只有required: true
,则会在用户离开字段时正确显示错误。发生了什么事?
ContactName: {
required: {
depends: function() {
alert("'" + $(this).val() + "'");
if ($.trim($(this).val()).length === 0) {
$(this).val($.trim($(this).val()));
return false;
}
return true;
}
},
maxlength: 100
}
答案 0 :(得分:0)
您可以更改 ContactName 的规则(有关详细信息,请查看rules examples):
ContactName: {
required: true,
minlength: {
depends: function(ele) {
if (ele.value.trim().length === 0) {
ele.value = '';
return false;
}
return true;
}
},
maxlength: 100
}
摘录:
$("#commentForm").validate({
rules: {
ContactName: {
required: true,
minlength: {
depends: function(ele) {
if (ele.value.trim().length === 0) {
ele.value = '';
return false;
}
return true;
}
},
maxlength: 100
}
},
messages: {
ContactName: "Please enter your contact name"
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
<form class="cmxform" id="commentForm" method="get" action="">
<fieldset>
<p>
<label for="ContactName">Name</label>
<input id="ContactName" name="ContactName" type="text">
</p>
<p>
<input class="submit" type="submit" value="Submit">
</p>
</fieldset>
</form>
&#13;