我正在构建一个基于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个原始字段和重复的字段(用户是否重复),所有字段都由用户填写并输入错误消息?
答案 0 :(得分:1)
理想情况下,从UX角度来看,您应该尝试验证客户端,然后仔细检查该服务器端。提交表单只是为了发现有问题,这很烦人。在提交之前显示错误/问题总是有利的。
答案 1 :(得分:0)
这可能不是您想要的,但您可以使用以下方法简化验证:Live Validation
这是一个javascript验证脚本。我喜欢它,它的精简,快速,并且非常易于使用。有关于如何使用它的完整文档,它都是客户端运行。
答案 2 :(得分:0)
我觉得第一个问题在Chief Alchemist's Answer得到了很好的回答。要回答第二个问题,带有可变字段的表单应作为数组发布。处理并验证表单数据时,应迭代每个数组条目。