3 回答

TA贡献1827条经验 获得超8个赞
我自己遇到了这个问题。在基于步骤构建表单时,我需要有条件地验证表单的各个部分(即某些输入在运行时动态添加)。结果,有时一个选择下拉列表将需要验证,而有时则不需要。但是,在折磨结束之前,需要对其进行验证。结果,我需要一个可靠的方法,而不是解决方法。我查阅了的源代码jquery.validate。
这是我想出的:
通过指示验证成功来清除错误
呼叫处理程序以显示错误
清除所有存储的成功或错误
重置整个表单验证
这是代码中的样子:
function clearValidation(formElement){
//Internal $.validator is exposed through $(form).validate()
var validator = $(formElement).validate();
//Iterate through named elements inside of the form, and mark them as error free
$('[name]',formElement).each(function(){
validator.successList.push(this);//mark as error free
validator.showErrors();//remove error messages if present
});
validator.resetForm();//remove error class on name elements and clear history
validator.reset();//remove all error and success data
}
//used
var myForm = document.getElementById("myFormId");
clearValidation(myForm);
缩小为jQuery扩展:
$.fn.clearValidation = function(){var v = $(this).validate();$('[name]',this).each(function(){v.successList.push(this);v.showErrors();});v.resetForm();v.reset();};
//used:
$("#formId").clearValidation();

TA贡献2051条经验 获得超10个赞
如果您只想隐藏错误:
$("#clearButton").click(function() {
$("label.error").hide();
$(".error").removeClass("error");
});
如果指定了errorClass,则调用该类以隐藏error(默认)我上面使用的那个。
- 3 回答
- 0 关注
- 936 浏览
添加回答
举报