【发布时间】:2014-03-10 11:04:49
【问题描述】:
我在 asp.net 中使用 jQuery 1.7.2 和 jQuery Validation 1.8.1。在 jQuery Validation 中有一个名为 remote 的选项,它需要对 Web 服务进行 ajax 调用。我的事情是我正在检查 id 是否已经使用。我正在使用 JSON.stringify 将值发布到 Web 服务,但它会发送空字符串,但如果我在没有 JSON.stringify 的情况下发送,我可以看到该值。
我的代码如下。那么我们该如何解决呢
$(document).ready(function () {
var validator = $("#form1").validate({
rules: {
ctl00$ContentPlaceHolder$txCivilID: {
required: true,
rangelength: [12,12],
digits: true,
remote: {
url: "CivilID.aspx/IsAlreadyAvailable",
type: "post",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({ civilID: $('#<%=txCivilID.ClientID%>').val() }),
dataFilter: function (data) {
var msg = JSON.parse(data);
if (msg.hasOwnProperty('d'))
return msg.d;
else
return msg;
}
}
},
ctl00$ContentPlaceHolder$txFirstName: {
required: true
},
ctl00$ContentPlaceHolder$txLastName: {
required: true
},
ctl00$ContentPlaceHolder$txMobile: {
required: true,
rangelength: [8,8],
digits: true
},
ctl00$ContentPlaceHolder$dpUserType: {
required: true
}
},
messages: {
ctl00$ContentPlaceHolder$txCivilID: {
required: "Civil for is required!",
rangelength: "Civil for should be {0} in length!",
digits: "Civil for should be only numbers!",
remote: "Civil ID already exists !!!"
},
ctl00$ContentPlaceHolder$txFirstName: "First Name is required!",
ctl00$ContentPlaceHolder$txLastName: "Last Name is required!",
ctl00$ContentPlaceHolder$txMobile: {
required: "Mobile number is required!",
rangelength: "Mobile number should be {0} in length!",
digits: "Mobile number should be only numbers!"
},
ctl00$ContentPlaceHolder$dpUserType: "Select User Type !"
},
errorPlacement: function (error, element) {
$('label[for="' + element.attr("id") + '"]').text(error.text());
}
});
});
Javascript 的渲染版本
<script type="text/javascript">
$(document).ready(function () {
var validator = $("#form1").validate({
rules: {
ctl00$ContentPlaceHolder$txCivilID: {
required: true,
rangelength: [12,12],
digits: true,
remote: {
url: "CivilID.aspx/IsAlreadyAvailable",
type: "post",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: '{ civilID:' + JSON.stringify($('#ContentPlaceHolder_txCivilID').val()) + '}',
dataFilter: function (data) {
var msg = JSON.parse(data);
if (msg.hasOwnProperty('d'))
return msg.d;
else
return msg;
}
}
},
ctl00$ContentPlaceHolder$txFirstName: {
required: true
},
ctl00$ContentPlaceHolder$txLastName: {
required: true
},
ctl00$ContentPlaceHolder$txMobile: {
required: true,
rangelength: [8,8],
digits: true
},
ctl00$ContentPlaceHolder$dpUserType: {
required: true
}
},
messages: {
ctl00$ContentPlaceHolder$txCivilID: {
required: "Civil for is required!",
rangelength: "Civil for should be {0} in length!",
digits: "Civil for should be only numbers!",
remote: "Civil ID already exists !!!"
},
ctl00$ContentPlaceHolder$txFirstName: "First Name is required!",
ctl00$ContentPlaceHolder$txLastName: "Last Name is required!",
ctl00$ContentPlaceHolder$txMobile: {
required: "Mobile number is required!",
rangelength: "Mobile number should be {0} in length!",
digits: "Mobile number should be only numbers!"
},
ctl00$ContentPlaceHolder$dpUserType: "Select User Type !"
},
errorPlacement: function (error, element) {
$('label[for="' + element.attr("id") + '"]').text(error.text());
}
});
});
【问题讨论】:
标签: jquery asp.net web-services jquery-validation-engine