是否需要在客户端进行表单验证?或者,如果在服务器端进行同样的操作就足够了


Form Validation required at Client side? Or if same done at Server side is enough?

我正在建立一个基于wordpress的网站,我在那里放了一个使用jQuery的表单。然而,我刚刚开始理解jquery,所以在使用它时感觉不太好。我有两个问题。

第一个:关于此表单,是否有必要在客户端和服务器端验证该表单?或者只在服务器端(php)就足够了?

第二个问题:该表单有一些字段,如果我单击某个按钮,这些字段可以重复。为此,我使用以下代码:

Jquery代码:

(function($){
 $countForms = 1;
      $.fn.addForms = function(idform){
                    var myform = "<table>"+
                     "  <tr>"+
                     "     <td>Field A ("+$countForms+"):</td>"+
                     "     <td><input type='text' name='fielda["+$countForms+"]'></td>"+
                     "     <td>Field B ("+$countForms+"):</td>"+
                     "     <td><textarea name='fieldb["+$countForms+"]'></textarea></td>"+
                     "     <td><button>remove</button></td>"+
                     "  </tr>"+
                     "</table>";

                    if(idform=='mybutton'){
                        alert(idform);
                        myform = $("<div>"+myform+"</div>");
                        $("button", $(myform)).click(function(){ $(this).parent().parent().remove(); });
                        $(this).append(myform);
                        $countForms++;
                    }
      };
})(jQuery);         

$(function(){
    $("#mybutton").bind("click", function(e){
    e.preventDefault();
    var idform=this.id;
        if($countForms<3){
            $("#container").addForms(idform);
        }       
    });
});

Html:

<div id="container"><div>
<form method="post" name="b" >
<table>
    <tr>
        <td>Field A</td>
        <td><input type='text' name='dadoA'></td>
        <td>Field B</td>
        <td><textarea name="dadoB"></textarea></td>
        <td><button>remove</button></td>
    </tr>
</table>
</div>
</div>
<button id="mybutton">add form</button>
<div align="center">
<p><input type="submit" value="Registar" name="registar"></p>
</div>

我知道如何使用php来验证这些字段。我不知道的是当我复制它们时如何验证
我的意思是,我有一个包含2个字段的表单,我复制它们,并假设用户用错误/不可接受的值填充这个新的(第三个)字段
点击"提交"后,我如何使用PHP验证输入、刷新页面、回显2个原始字段和重复字段(哪个用户重复),所有这些字段都由用户填写并带有错误消息?

理想情况下,从用户体验的角度来看,您应该尝试验证客户端,然后仔细检查服务器端。提交一份表格却发现有什么问题,这很烦人。在提交之前显示错误/问题总是一个加分项。

这可能不是您想要的,但您可以使用以下方法简化验证:Live validation

这是一个javascript验证脚本。我喜欢它,它轻巧,快速,而且很容易使用。有关于如何使用它的完整文档,而且都是在客户端运行的。

我觉得第一个问题在首席炼金师的回答中得到了很好的回答。要回答第二个问题,带有可变字段的表单应该作为数组发布。在处理和验证表单数据时,应该对每个数组条目进行迭代。