Проверка JQuery с помощью Remote отправляет пустые данные на веб-сервис - PullRequest
2 голосов
/ 18 апреля 2010

Я использую плагин JQuery Validation. Я использую удаленную опцию, чтобы позвонить на мой веб-сервис и проверить, существует ли название компании. Веб-сервис принимает только данные JSON.

Я передаю данные веб-службе из поля ввода компании в моей форме следующим образом:

данные: "{'company': '" + $ (' # Company '). Val () + "'}"

Но это всегда возвращает пустое значение для компании, поэтому ответом является {'company': ''}, т.е. правильный JSON, но отсутствует значение поля ввода компании.

Может кто-нибудь пролить свет на то, почему я всегда получаю пустое значение здесь?

Спасибо за помощь, Киран

Ответы [ 3 ]

5 голосов
/ 16 декабря 2010

Причина в том, что

data: "{'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.Net, dataFilter необходим, потому что ответ будет находиться в «d», называемом свойстве объекта json. Библиотека JSON потребуется.

"{ d: "true" }"

0 голосов
/ 03 июля 2019

Попробуйте:

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

или лучше:

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

Это сработало для меня

0 голосов
/ 18 апреля 2010

Попробуйте это:

data: {
    company: $('#Company').val(),
    param: 1  //Second paramenter
              //you can keep adding parameters folloiwng the format 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...