2011-12-05 10 views
1

このjquery関数は、ボタンの送信には問題ありませんが、リンクボタンでは機能しません。どうして?jQuery linkbutton error

<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

あなたのコードをさらに提供すればもっと役立つかもしれません。たとえば、正確にはサーバーコードが出力されていますか?これらの値はjQueryにとって無意味かもしれません。 –

+0

可能な複製http://stackoverflow.com/questions/649762/asp-net-linkbutton-imagebutton-and-jquery-validate – goodeye

答えて

0

自然に戻って、サーバーへのボタンの記事を提出します。リンクボタンは、Microsoftが開発した__doPostBackのトリックを使用してサーバーにポストバックします。それが@ユリの解決策が良い理由です。または、共通の方法を使用することもできます。

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

ボタンをすべてあなたの機能を呼び出すようにします。これを処理する他のJQuery/HTML 5固有の方法がいくつかあります。

5

ページの一番下にこのスクリプトを追加します。

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

またはLinkBut​​tonコントロールにOnClientClickプロパティを追加します。OnClientClick="if(!$('#form1').valid()) return false;"

+0

働いて..ありがとう! –

関連する問題