0

入力したレポート番号がSQLデータベースで有効であることを確認するためにjQueryValidateを使用しています。レポート番号が渡されたときにtrue/falseブール値を返すasmxWebサービスを使用してこれを行っています。Webサービスは正常に機能しており、次のいずれかのJSONエンコードされた応答を返します。

<?xml version="1.0" encoding="UTF-8"?>
<boolean xmlns="http://tempuri.org/">true</boolean>

また

<?xml version="1.0" encoding="UTF-8"?>
<boolean xmlns="http://tempuri.org/">false</boolean>

ただし、次のjQueryで呼び出そうとすると、期待どおりのtrue / falseブール値ではなく、[objectObject]が返され続けます。

$(function() {
        $("#form1").validate({
            rules: {
                tbAuto: {
                    remote: function () {
                        var r = {
                            url: "ReportList.asmx/ValidateInReports",
                            type: "POST",
                            contentType: "application/json; charset=utf-8",
                            dataType: "json",
                            data: "{'ReportNumberSearch': '" + $('#tbAuto').val() + "' }",
                            dataFilter: function (data) { return (JSON.parse(data)).d; }
                        }
                        $("#txtID").val(r);
                       // return r;
                    }
                }
            },
            messages: {
                tbAuto: { remote: "check" }
            }
        });
    });

戻り行をコメントアウトしてテキストボックスに戻し、何が返されるかを確認しました。rを返すとき; 彼らの中には、それがいつも真実を返しているかのように振る舞っていました。

これは現在私の人生のアプリケーションにはなく、テスト環境で動作させようとしているだけです。これは、上記のjQueryに対応する私のテストコードです。

<form id="form1" runat="server">
  <div class="demo">
   <div class="ui-widget">
     <label for="tbAuto">Report Number: </label>
      <asp:TextBox ID="tbAuto" class="tb" runat="server">
      </asp:TextBox><br />
     <label for="txtID">ID: </label>
      <asp:TextBox ID="txtID" CssClass="tbb" runat="server" />
   </div>
  </div>
</form>

ご意見やご提案をよろしくお願いいたします。

4

1 に答える 1

-1

検証の代わりにぼかしを使用して、まったく異なるルートをたどることになりました。私もこれに問題がありましたが、最終的にはそれを理解することができました。解決策のある投稿はここにあります。

于 2012-07-03T22:36:05.433 に答える