所以我想使用jQuery来验证我的表单,这是我想象它并且它的工作方式,但这是最好的方法,也许我可以用更少的代码更有效地做到这一点?
<script type="text/javascript">
$(document).ready(function()
{
$("#frmCatAdd").submit(function()
{
var name = $("#edtName").val();
if (name == "")
$("#edtName").css("border", "1px solid red")
else
$("#frmCatAdd").submit();
return false;
});
});
</script>
答案 0 :(得分:2)
尝试查看jValidate以简化和加快您的任务。我经常使用它来创建新表单。
但是,我强烈建议您在服务器端进行验证。用户所要做的就是关闭Javascript以破坏完美的验证规则。
答案 1 :(得分:1)
是的 - 不仅仅依赖于javascript验证。您还需要进行服务器端验证!这非常重要。如果我关闭了javascript,我已经绕过了你的整个验证。
答案 2 :(得分:1)
建议:
$(document).ready(function() {
$("#frmCatAdd").submit(function() {
var $edtname = $("#edtName"),
name = $edtname.val();
if (!$.trim(name).length) {
$edtName.css("border", "1px solid red")
return false;
}
});
});
答案 3 :(得分:1)
你可以改进的一件事就是摆脱无限循环。通过从.submit()
调用.submit()
,您已经进行了循环。
在这种情况下,您可以使用原生submit
。
$("#frmCatAdd").submit(function() {
var name = $("#edtName").val();
if (name == "")
$("#edtName").css("border", "1px solid red")
else
this.submit(); // call native submit method instead
return false;
});
Though @jAndy's suggestion摆脱else
并将return false
移至if()
更好。如果您在处理程序中运行异步代码,则从submit
调用submit
会更为重要。
答案 4 :(得分:0)
$("#frmCatAdd").submit(function() {
$e = $(this).find("#edtName");
if (!$.trim($e.val()).length) {
$e.css("border", "1px solid red")
return false;
}
});
答案 5 :(得分:0)
显而易见的答案:
<form id=frmCatAdd>
<input id=edtName required type=text>
</form>
当然,我应该重复一下你需要服务器端验证的观点。