此jquery函数对于按钮提交工作正常,但对链接按钮无效。为什么?

<html>
<head>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#form1").validate({
                rules: {
                    <%= txtUserName.UniqueID %>: {minlength: 5, required: true},
                    <%= txtPassword.UniqueID %>: {minlength: 5, required: true},
                    <%= txtEmail.UniqueID %>: {required: true},
                    <%= txtURL.UniqueID %>: {required: true},
                    <%=  chkbox.UniqueID%>: {required:true},
                    <%= textcredit.UniqueID %>:{required:true},
                 },
                messages: {
                    <%= txtUserName.UniqueID %>: {
                        required: "Plaese enter your name",
                        minlength: "User name must be atleaet of 5 characters"
                    },
                    <%= txtPassword.UniqueID %>: {
                        required: "Plaese enter your password",
                        minlength: "Password must be atleaet of 5 characters"
                    },
                    <%= txtEmail.UniqueID %>:{ required: "Plaese enter your Email Id",},
                    <%= txtURL.UniqueID %>:{ required: "Plaese enter Website URL",},
                    <%= chkbox.UniqueID %>:{ required: "Plaese select this chek box",} ,
                    <%= chkbox.UniqueID %>:{
                        required: "Plaese select creditcard",
                        minlength: "User name must be atleaet of 5 characters"
                    },
                }
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <table width="50%" cellpadding="2" cellspacing="4" style="border: solid 1px navy; background-color: #d5d5d5;">
        </table>
    </form>
</body>

最佳答案

提交按钮自然地发回到服务器上; linkbutton使用Microsoft开发的__doPostBack技巧回发到服务器。这就是@Yuriy的解决方案很好的原因。或者,您可以使用一个通用方法:

function validateForm(id) {
  return $("#" + id).valid();
}


并让所有按钮调用您的函数。还有其他两种特定于JQuery / HTML 5的方法来处理此问题。

09-25 16:46