Javascript jQuery验证:是否显示包含字段名的验证消息?

Javascript jQuery验证:是否显示包含字段名的验证消息?,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我有许多必填字段需要验证,我希望以这种格式显示警告消息:“请填写”+字段标签。我知道我可以像这样手动操作: $(“#myform”)。验证({ 规则:{ 名字:“必选”, Middlename:“必需”, 姓氏:“必需” }, 信息:{ 名字:“请填写名字”, 中间名:“请填写中间名”, 姓氏:“请填写姓氏” } }); 名字 中名 姓 如果要保留当前方法 // labelName is $("label").text() - Which is the concatinated string

我有许多必填字段需要验证,我希望以这种格式显示警告消息:“请填写”+
字段标签
。我知道我可以像这样手动操作:

$(“#myform”)。验证({
规则:{
名字:“必选”,
Middlename:“必需”,
姓氏:“必需”
},
信息:{
名字:“请填写名字”,
中间名:“请填写中间名”,
姓氏:“请填写姓氏”
}
});

名字
中名
姓

如果要保留当前方法

// labelName is $("label").text() - Which is the concatinated string of *all* labels
$.each(requiredFields, function (_, value) {
  messages[value] = prefix + labelName;
});
应该是

// We can fetch the text from the correct field by searching the inputs with the 'for' attribute
$.each(requiredFields, function (_, value) {
  let _label = $(`label[for=${value}]`).text().trim();
  messages[value] = prefix + _label;
});

另一种方法是使用
.reduce()
。我们只需在
requiredFields
数组上循环即可创建对象

var labelName=$(“label”).text(),
requiredFields=[“名字”、“中间名”、“姓氏”],
消息={},
prefix=“请填写”;
消息=必填字段。减少((acc,标签)=>{
让text=$(`label[for=${label}]`).text().trim();
acc[标签]=前缀+文本;
返回acc;
}, {});
$(“#myform”)。验证({
规则:{
名字:“必选”,
Middlename:“必需”,
姓氏:“必需”
},
信息:信息
});

名字
中名
姓

只是想澄清一下,您是想使用邮件标签中的
for
值,还是从已填充的
required字段中提取
好吗?@Light我想使用标签的实际文本,即Forename字段的Forename、Middle name字段的Middle name、Lastname字段的Last name。数组
requiredFields
只是对象
消息的键。请参阅:感谢您的回答,但是
requiredFields
中的字符串只是对象
消息的键。实际的标签文本是我想要使用的,因此警告消息应该是“请填写中间名”,而不是“请填写中间名”。我已经修复了我的答案,以及您可能对原始功能所做的更改-很抱歉我的误解