>我有两个输入字段:first_name
和last_name
。我将它们验证为以下:
rules: {
required: true,
maxlength: 50
},
groups : {
name : "first_name last_name"
},
errorElement: "p",
errorPlacement: function(error, element) {
let errorContainer = getErrorContainer(element);
if($(errorContainer).attr("class") != "error_container") {
element.parent("div.required").append($('<div class="error_container"></div>'));
errorContainer = getErrorContainer(element);
}
$(errorContainer).append(error);
function getErrorContainer(element){
return element.parent("div.required").children("div.error_container");
}
},
highlight: function(element, errorClass, validClass) {
$(element).addClass(errorClass).removeClass(validClass);
$(element).css("background-color", "#ffd0e0");
//$(element).css("color", "black");
$(element).parent("div.required").children("div.error_container").children("p").removeClass("ok").addClass("error");
$(element).parent("div.required").parent("td").css("background-color", "#ffeded");
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass(errorClass).addClass(validClass);
$(element).css("background-color", "white");
$(element).parent("div.required").children("div.error_container").children("p").css("display", "block");
$(element).parent("div.required").children("div.error_container").children("p").removeClass("error").addClass("ok");
$(element).parent("div.required").children("div.error_container").children("p").html("OK");
if($(element).parent("div.required").parent("td").children("div.required").children("div.error_container").children("p.error").length == 0){
$(element).parent("div.required").parent("td").css("background-color", "#fff");
}
}
目前,我遇到了一个问题,如果first_name
满足规则(例如:最大长度<50(并且last_name
出现错误,那么验证器总是返回ok
状态。原因是:highlight
和unhighlight
同时被激活,unhighlight
覆盖highlight
。我希望在这种情况下,如果我触发last_name
字段,那么验证器会给我错误状态,如果first_name
正常状态。我该怎么做?我正在使用jquery-validation 1.19.1
.注意:名称组只有一条错误消息。
您不应该针对您的情况使用groups
选项,根据您所展示的内容,我认为您可能误解了此选项的预期目的。
例如,使用require_from_group
方法时,会在一组字段上收到多个相同的错误消息,这并不理想。groups
选项通过为这组字段显示一条错误消息而不是重复的相同消息来解决此问题。
因此,除非您使用的是require_from_group
或类似方法,否则您应该删除groups
选项。