AJAX表单,通过JSON响应进行php验证

时间:2015-02-06 14:44:53

标签: javascript ajax json

我有一个包含必填字段的表单,可以通过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容器到具有数据的字段。如何解决这个问题?

提前谢谢你。

3 个答案:

答案 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。