使用远程将空数据发布到webservice的JQuery验证

使用远程将空数据发布到webservice的JQuery验证,jquery,json,validation,plugins,Jquery,Json,Validation,Plugins,我正在使用JQuery验证插件。我正在使用远程选项调用我的Web服务,以检查是否存在公司名称。webservice只接受JSON数据 我以如下形式将数据从公司输入字段传递到Web服务: 数据:“{'company':'”+$('#company').val()+“}” 但这总是为company返回一个空值,因此响应为{'company':''},即正确的JSON,但缺少company输入字段值 有人能解释一下为什么我总是得到一个空值吗 谢谢你的帮助, Ciaran试试这个: data: {

我正在使用JQuery验证插件。我正在使用远程选项调用我的Web服务,以检查是否存在公司名称。webservice只接受JSON数据

我以如下形式将数据从公司输入字段传递到Web服务:

数据:“{'company':'”+$('#company').val()+“}”

但这总是为company返回一个空值,因此响应为{'company':''},即正确的JSON,但缺少company输入字段值

有人能解释一下为什么我总是得到一个空值吗

谢谢你的帮助, Ciaran

试试这个:

data: {
    company: $('#Company').val(),
    param: 1  //Second paramenter
              //you can keep adding parameters folloiwng the format 
}
data: function() { return "{'company': '" + $('#Company').val() + "'}"; }
原因是

数据:“{'company':'”+$('#company').val()+“}”

在页面加载时计算,而不是在进行远程调用时计算

尝试以下方式声明规则:


remote: function() {  
    var r = {  
        url: "webservice.asmx",  
        type: "POST",  
        contentType: "application/json; charset=utf-8",  
        dataType: "json",  
        data: "{'company': '" + $('#Company').val() + "'}"  
        dataFilter: function(data) { return (JSON.parse(data)).d; }  
       }   
    return r;  
  }
如果您使用的是ASP.NETWebService,则需要使用dataFilter,因为响应将位于json对象的名为“d”的属性中。需要JSON库

“{d:“true”}”

试试这个:

data: {
    company: $('#Company').val(),
    param: 1  //Second paramenter
              //you can keep adding parameters folloiwng the format 
}
data: function() { return "{'company': '" + $('#Company').val() + "'}"; }
或者更好的方式:

company: function() {return $('#Company').val();}

这对我很有效

嗨,巴勃罗,谢谢你的回复。这可以将值返回给我,但格式是错误的,因为它是一个querystring而不是JSON,即Company=test而不是{Company:test}。我想知道这是否是验证插件的错误?Wierd,您在哪里看到这个Company=test?在PHP中解析json字符串之后?如果使用json_decode(),它应该返回一个关联数组,比如[comapany]=>“test”、[param]=>1Hi Pablo,我使用Firebug来调试它。如果我按照您的建议设置数据参数,那么它将使用值进行URL编码。如果我按照我最初的建议设置它,它是json编码的,但没有设置值。我同意这是验证插件的奇怪行为。我正在探索使用ASP.NET MVC的途径,因此我认为这不会是一个问题,因为我可以使用在控制器中返回JSONResult的操作方法返回json数据。您应该发布更多的$.ajax请求代码,并解释您使用的web服务类型。也许你的问题就要解决了?我发布了一些不同版本的$.ajax请求作为答案,以从不同的角度显示问题。