2010-11-22 15 views
0

asp.net codebehindとwebserviceでjQueryリモート検証を使用していますが、リモート機能がサーバーを正常に起動していて、TrueまたはfalseのJSON応答が返されていますが、次のようにします:asp.net webmethod問題でjqueryリモート検証

私が意図的な空フィールドで初めてログインボタンを押すと、クライアント側とサーバー側の両方でエラーメッセージが表示されますが、フィールドを入力してログインボタンを押すとリモート機能が動作していますクライアント側ではないが問題ありません。フィールドがいっぱいになってもエラーメッセージは表示されません。

私はネット上で運がないと多くの検索を試みましたが、誰かが助けてくれれば幸いです。ここで

私のコードです:

$("#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

答えて

1

[OK]をよくあなたの結果に影響を与えているようには見えませんが、あなた2つのデータ:フィールドがあります。

それ以外にも、あなたは普通のjquery ajax呼び出しのようにremote:ruleを扱っています...そうではありません。それは成功のコールバックなどがありません...それはこのように見えるはずです。

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

そして、あなたのサーバ側はよく真または偽であること、それは成功コールバックを経由して行われていないです掲載値に基づいて、「true」または「false」エコー。 、あなたはそれを与える、それをデータで変数を渡す:

だから基本的に

public static Boolean IsValid() 
{ 

    document.write("true"); 
} 

のようなものは、それはURLをヒットすると、その有効なコードかのかどうかを判断するにはtrueまたはfalseを待ちます。フォームを検証する理由は、何も入力していないときに必要なものです:必要なのは:その値が空であるかどうかをチェックしている真の値...

+0

男はヒントのために多くのおかげで、どのように愚かだった!私は間違っているかもしれませんが、JqueryのマニュアルからサーバーはJSONレスポンスを返し、私はwebmethodのコードを使用していて、レスポンスを{"d":false}の形で返します。 、document.write( "true")はありません。 C#で。ですので、これを詳しく教えてください。 – DevMania

+0

申し訳ありません、Response.Write。単純なtrueまたはfalseをプレーンテキストでAjaxリクエストに戻すものは何でも – superfro