使用asmx Web Service返回[object Object]而不是true / false的jQuery远程验证

时间:2012-06-22 21:40:24

标签: asp.net json web-services jquery-plugins jquery-validate

我正在使用jQuery Validate来确保输入的报告编号在SQL数据库中有效。我正在使用asmx Web服务执行此操作,该服务在传递报告编号时返回true / false布尔值。 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中调用它时,它会一直返回[object Object]而不是像我期望的那样返回true / false boolean。

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

提前感谢任何想法或建议。

1 个答案:

答案 0 :(得分:-1)

我最终使用模糊而不是验证来完全不同的路线。我也遇到了麻烦,但最终还是弄明白了。可以找到具有分辨率的帖子here