2010-11-22 136 views
0

我正在使用jQuery與asp.net codebehind和webservice遠程驗證,現在遠程功能是擊中服務器罰款,我返回真或假JSON響應,但發生了什麼是以下內容:jquery遠程驗證與asp.net webmethod問題

第一次打入帶有意向空字段的登錄按鈕時,我在客戶端和服務器端都收到錯誤消息,但是如果填充該字段並嘗試點擊登錄按鈕,遠程功能正在工作罰款,但不是客戶端和即使填充字段錯誤消息不會。

我已經在網上嘗試了許多搜索,沒有運氣,如果有人可以幫助我,我會深表感謝。

這裏是我的代碼:

$("#Login").click(function() { 
       $("#form1").validate(
       // This prevents validation from running on every 
       // form submission by default. 
       // onsubmit: false 

{ 規則:{ 電子郵件:{ 要求:真實,

 remote: { 
     type: "POST", 
     url: "WebForm1.aspx/IsValid", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data: "{'username':'" + function() { 
      return $("#UserName").val(); 
     } + "'}", success: function (msg) { 
      result = (msg == '1') ? true : false; 
     // alert(msg.d); 
     } 
    } 


} 
} 
} 
      ); 

       var isValid = $("#form1").valid(); 



       alert(isValid); 
      }); 

服務器端代碼

 public static Boolean IsValid() 
    { 

     return true; 
    } 
+0

你的意思是有2個數據:在你的遠程規則中的字段? – superfro 2010-11-22 17:52:09

回答

1

玉以及它似乎不會影響你的結果,但你確實有2個數據:字段。

除此之外,你正在對待像一個常規的jquery ajax調用遠程:規則......它不是那樣的。它沒有成功的回調等等,它應該看起來更像這樣。

remote: { 
     type: "post", 
     url: "WebForm1.aspx/IsValid", 
     data: { username: function() { 
      return $("#UserName").val(); 
             } 
       } 
     } 

你的服務器端以及回聲「真」或者基於公佈值是真的還是假的「假」,它不是通過成功回調完成。

因此,像

public static Boolean IsValid() 
{ 

    document.write("true"); 
} 

基本上,它會打的網址:你給它,它傳遞數據的變量:等待真或假,以確定其是否有效的代碼或不。您的表單驗證工作原因是什麼時候你什麼都沒有放入,是因爲所需的:真值你檢查它是否爲空...

+0

男人非常感謝提示,我是多麼愚蠢!你對電子郵件規則是正確的,我忘了和改變它,我可能是錯誤的,但從Jquery手冊它說服務器應該返回JSON響應,我使用webmethod後面的代碼,它以{「d」:false}形式重新運行響應。 ,沒有document.write(「true」);在C#中。所以請你能詳細說明一下 – DevMania 2010-11-23 03:41:08