【发布时间】:2014-02-27 16:30:43
【问题描述】:
我正在将这个 jQuery Validation Plugin (jquery-validate) 与 Bootstrap 结合使用,我已经用它制作了 5 个表单并且非常痛苦。
我现在有了这个JSFiddle,但我的密码字段表现得很奇怪...
如您所见,我为密码设置了required 规则,就像所有一样。如果我删除浏览器中的所有项目符号并移至下一个字段,则保持不变,如果已标记为正确,则保持正确,如果根本未标记,则保持未标记。 没有标记不正确,也没有显示错误信息!
我只能通过首先在密码字段中生成minlength 错误,然后然后删除所有字符,或来显示我的required 规则错误消息> 通过单击提交按钮(仅在所有字段均未处于错误状态时可用)。
经过大量检查,我找到了onfocusout 选项。这可以是true 或false,默认设置为true 如网站所述,
[It] 在模糊时验证 [s] 元素(复选框/单选按钮除外)。如果未输入任何内容,则跳过所有规则,除非该字段已被标记为无效。
这肯定是原因,我想。但是经过大量的谷歌搜索,结果证明没有其他人有这个问题(或者至少,由于onfocusout 规则)。一篇文章确实提到“required 规则是一个例外”(onfocusout 规则?)。
底线:我的required 规则错误无法正常工作,提交或首次生成@987654337 时例外@ 错误信息。 然后,它确实出现了。
结论:可以产生错误,但不会在blur上产生。
问题:如何解决这个问题?
我的密码输入栏
<input type="password" class="form-control" id="passw" name="passw" value="nochange" maxlength="20" required="required" placeholder="123456789" />
我的密码规则
passw: {
required: true,
minlength: 5,
maxlength: 20
},
我在应该放置错误时添加了console.log 消息 - 甚至没有调用。我验证了我的代码和 HTML,对所有内容进行了三重检查,但仍然找不到错误...
【问题讨论】:
-
发生这种情况是因为您甚至在规则运行之前就指定了一个值,如果您取出所有预先确定的值,则检查正常工作......jsfiddle.net/638fu/5
-
@jeremy 我明白了......但是,我确实需要那些预定义的值。我刚刚用setting those values through jQuery 尝试过,同样的问题。但它确实让我更接近,虽然它不是很理想。
-
你是对的......你可能需要设置值并重新聚焦才能让它发挥作用,可能会有更好的解决方案,而不是那么“hacky”
标签: jquery-validate jquery jquery-validate required