我有一个包含必填字段的表单,可以通过PHP检查。它以JSON方式生成响应,并通过ajax响应以下列形式提供响应 对象{first_name:true,e_mail:false,phone_number:true,themessage:true}
表单中的输入字段的ID等于对象数组的键。
我想要实现的是循环遍历此对象数组,确定缺少哪些字段,并在此处添加错误消息是我如何做的。
if (fields_list) {
console.log(fields_list);
for (var key in fields_list) {
var item = fields_list[key];
if (item === true) {
$('#' + key).after('<div class=' + key + '>' + data.field_msg + '</div>');
} else {
$("div" + '#' + key).remove();
};
}; // Loop through fields_list
}; // if field list exist
在进行第一次表单子模式时,它给出了我期望的结果,它在输入字段本身之后添加了带有错误消息的div容器和输入字段的id。如果数据已输入字段,则在第二次提交后出现问题,我希望删除输入字段后的div容器。相反,它继续在字段之后追加div容器,该字段仍然没有数据提交但是没有附加div容器到具有数据的字段。如何解决这个问题?
提前谢谢你。
答案 0 :(得分:0)
您是否认为在表单的顶部/底部有1个错误div?这就是我们在这里用于项目的内容。如果你有兴趣尝试它,你不必每次都附加一个div,而是有一个div和#34;错误&#34;或者其他东西已经存在,但隐藏着CSS。收到回复后,添加一个标记&#34;错误&#34;在你的JSON中让你知道是否有错误,并显示div是否存在。然后,您可以在该div中添加一个简单的错误列表,并在每次提交时清除它,以便在需要时再次生成新列表。
答案 1 :(得分:0)
消息div没有ID。因此,您的第二个选择器不匹配。
如果你想要接近现有代码,最简单的解决方案就是给这些div一个id。例如:for (var key in fields_list) {
$('#message' + key).remove(); //clear old messages
var item = fields_list[key];
if (item === true) {
// add message div with unique id
$('#' + key).after('<div class=' + key + ' id="message' + key + '">' + data.field_msg + '</div>');
}
}; // Loop through fields_list
答案 2 :(得分:0)
if (fields_list) {
for (var key in fields_list) {
var item = fields_list[key];
$("div" + '#' + key).remove(); // clear old messages
if (item === true) {
$('#' + key).after('<div id=' + key + '>' + data.field_msg + '</div>');
} else {
$("div" + '#' + key).remove();
};
}; // Loop through fields_list
}; // if field list exist
你真的帮了cypherabe。