Ошибка ссылки JQuery - PullRequest
       10

Ошибка ссылки JQuery

1 голос
/ 05 декабря 2011

Эта функция 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>

Ответы [ 2 ]

5 голосов
/ 05 декабря 2011

Добавьте внизу страницы этот скрипт:

<script type="text/javascript">
     var originalDoPostBack = __doPostBack;
     __doPostBack = function (sender, args) {
          if ($("#form1").valid() === true) {
               originalDoPostBack(sender, args);
          }
     }
</script>

Или добавьте OnClientClick свойство в LinkButton: OnClientClick="if(!$('#form1').valid()) return false;"

0 голосов
/ 05 декабря 2011

Кнопка отправки отправляет обратно на сервер естественным образом; кнопка link отправляет обратно на сервер, используя трюк __doPostBack, разработанный Microsoft. Вот почему решение @ Yuriy хорошее. В качестве альтернативы, вы можете просто использовать общий метод:

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

И все ваши кнопки вызывают вашу функцию. Есть несколько других JQuery / HTML 5 конкретных способов справиться с этим.

...