我正在使用这个插件http://jqueryvalidation.org/validate
我要做的是在验证完成后操作错误消息的元素。但是,使用以下代码
$(".selector").validate({
errorClass: 'error-message'
invalidHandler: function(event, validator) {
console.log($("#myDiv").find('.error-message').length);
}
});正如我所猜测的,输出0是因为这个函数在将错误消息输出到html之前工作。如何在验证完成后运行代码,并且错误div元素已经插入到页面中。
更新
myDiv元素是特定输入的div,而不是整个表单的div,我想调用一个函数,它将在div的末尾移动error元素(我的div中有另一个元素),它看起来有点像这样
if ($("#myDiv").find('.error-message').length > 0) {
$("#myDiv").find('.error-message').appendTo($("#myDiv"));
}谢谢
发布于 2014-12-12 08:21:14
试试这个,也许你想要这个
if(! $(".selector").valid())
{
console.log($("#myDiv").find('.error-message').length);
}发布于 2014-12-12 17:00:58
你的密码..。
invalidHandler: function(event, validator) {
console.log($("#myDiv").find('.error-message').length);
}你是对的。这只是在消息显示之前触发的一个时间问题。除非单击按钮时已经显示错误消息,否则此方法将失败。
但是,我不知道为什么您要问如何计算这样的错误消息,因为按照文档中的示例已经存在一个内置方法。
invalidHandler: function(event, validator) {
var errors = validator.numberOfInvalids(); // reports the number of errors
console.log(errors);
}演示: http://jsfiddle.net/nv282zom/
FWIW,您的代码中也有一个缺陷,因为您只在计算带有error类的元素。这将使元素的数量增加一倍。作为错误类应用于输入元素和错误消息。
Quote OP
“我要做的是在验证完成后操作错误消息的元素。”
然而,你只向我们展示了你想要数数它们。还有许多其他回调函数和选项可用于处理错误消息.解释清楚你想要什么。
https://stackoverflow.com/questions/27439369
复制相似问题