我有一张订单,其中一部分是地址。它包含 Company、Street-Address、ZIP、Town、Country,带有一个简单的 jquery 表单验证,每个字段都需要,ZIP 验证数字。现在我想要对它们进行分组,并且只有一个字段在成功时显示“有效地址”,或者在错误时显示“地址错误”。
这是我的 js 代码的一部分:
$("#pageform").validate(
{
messages: {
company_from: addressError, //addressError is a JS var for the error message
street_from: addressError,
zip_from: addressError,
town_from: addressError,
country_from: addressError
},
groups: {
from: "company_from street_from zip_from town_from country_from"
},
errorPlacement: function(error, element) {
if (element.attr("name") == "company_from"
|| element.attr("name") == "street_from"
|| element.attr("name") == "zip_from"
|| element.attr("name") == "town_from"
|| element.attr("name") == "country_from"
)
{
$("#error_from").append(error);
}
},
success: function(label) {
var attribute = $(label[0]).attr("for");
$(".err-ok-" + attribute + " .ok").css("display", "block").css("visibility", "visible");
}
}
);
这是相应 HTML 代码的一部分:
<input type="text" name="company_from" id="company_from" class="required default input-s8" maxlength="255" />
<input type="text" name="street_from" id="street_from" class="required default input-s8" maxlength="255" />
<input type="text" name="zip_from" id="zip_from" class="required digits default input-s8" maxlength="5" onblur="checkCalculation()" />
<input type="text" name="town_from" id="town_from" class="required default input-s8" maxlength="255" />
<!-- and a select list for the country -->
您无需仔细查看我如何显示错误等,我的问题是,我不知道何时显示错误标签以及何时显示成功标签。当我为邮政编码输入一个字母时,我的 errorPlacement 函数和成功函数被调用(首先是 errorPlacement),所以我猜如果至少有一个字段正确,它总是调用成功。
请询问是否有任何问题,我很确定有... :-)