表单提交前,都会有定义一个验证的方法以对用户提交的内容进行限定,今天写到了这个,但出现了一个好郁闷的东西,就是一点提交了,调用我自己写的一个CheckForm()方法时,我明明写了return false了,但它还是提交到服务器了,好不郁闷!然后仔细检查才发现,原来是漏了个return,下面先看出错的代码:
<script src="../js/jquery-1.6.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#btnAdd").click(function () { CheckForm() });
$("#btnSave").click(function () { CheckForm() });
});
function CheckForm() {
if ($("#ddlClassesType_2").val() == "--請選擇--") {
alert("請選擇表單的類型");
$("#ddlClassesType_2").focus();
return false;
}
if ($("#txtWebName").val() == "") {
alert("請輸入網址的名稱");
$("#txtWebName").focus();
return false;
}
if ($("#txtWebNameAlias").val() == "") {
alert("請輸入網址的別稱");
$("#txtWebNameAlias").focus();
return false;
}
if ($("#ddlVisitorType").val() == "-1") {
alert("請選擇網址的訪問類型");
$("#ddlVisitorType").focus();
return false;
}
if ($("#txtSortNo").val() == "") {
alert("請輸入序號");
$("#txtSortNo").focus();
return false;
}
if ($("#txtWebUrl").val() == "") {
alert("請輸入網址");
$("#txtWebUrl").focus();
return false;
}
if ($("#txtWebDesc").val() == "") {
alert("網址備注信息也不能為空,請輸入。");
$("#txtWebDesc").focus();
return false;
}
return true;
}
</script>
我回想了一下以前写过的javascript经验,也碰到过类似的问题,当时是用javascript直接用的,类似于下面这样子:
<asp:Button ID="btnSave" runat="server" Text="保存" Width="50px" OnClick="btnSave_Click" OnClientClick="return CheckForm();" />
看到CheckForm()前面的return 没有?其实jquery也是同理的,就是少了这个家伙,所以,只要把第4跟第5行改成下面这样子就OK了
$("#btnAdd").click(function () { return CheckForm() });
$("#btnSave").click(function () { return CheckForm() });
虽然简单,但不会的时候真的要想半天,这次把它记下来,以后也能回顾一下,希望能帮到有同样困惑的朋友。