У меня проблема при попытке проверить пользовательское значение с помощью плагина jQuery Validation .
Проверка правильности запускается корректно и вызывает функцию веб-службы точно так, как я хочу, но даже если серверная функция работает правильно и возвращает результат true
/ false
, поле всегда недопустимо.
Это код проверки на стороне клиента
$('#myForm').validate({
errorContainer: container,
errorLabelContainer: $("ol", container),
wrapper: 'li',
meta: "validate",
rules: {
Code: { required: true, maxlength: 15, remote: function () {
return {
type: "POST",
url: GetBaseWSUrl() + 'MyService.asmx/IsValidCode',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({ umltCode: $('#Code').val() })
}
}
},
Description: { required: true, maxlength: 255 },
Notes: { maxlength: 255 }
},
messages: {
// ... omitted for brevity
},
submitHandler: function (form) {
saveObject(form);
}
});
Используя fiddler, я могу видеть, что на сервер сделан вызов и что сервер возвращает значение json true
/ false
в зависимости от случая, как в следующем примере:
{"d":false}
или
{"d":true}
Несмотря на это, плагин по-прежнему помечает поле как недействительное. Любое предложение?
РЕДАКТИРОВАТЬ : это функция моего сервера
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
public object IsValidCode(string umltCode)
{
[...]
if (u != null)
return false;
return true;
}
}