我正在使用 jQuery 的 .serialize() 从 javascript 生成的复选框中获取值。序列化后,数据通过 AJAX 发送到一个 aspx 页面。然后,aspx 页面应使用 Request.Form.GetValues[] 捕获复选框值。我的问题是复选框是序列化的,但 Request.Form.GetValues[] 没有得到任何值。
我曾经在 Web 表单中生成复选框,效果很好。但是当它们变成 javascript 生成时,Request.Form.GetValues[] 无法再获取复选框值。
以下是代码片段:
(序列化和 ajax 函数)
$('a#upload-button-gp').live('click', function() {
var data = $('form#upload').serialize();
$.loader(true);
$.ajax({
url: '/ptcProject/ajax.aspx',
type: 'post',
data: { data: data, upload: 1 },
success: function(response) {
if (parseInt(response) == 1) {
$.loader(false);
$('#confirmationUpload').modal('hide');
}
else if (parseInt(response) == 0) {
alert("You have already uploaded this batch.");
$('#confirmationUpload').modal('hide');
$.loader(false);
}
else {
alert('Please select at least one row to upload.');
$('#confirmationUpload').modal('hide');
$.loader(false);
}
}
});
(js生成的复选框)
$('tbody#table-data').append("<tr><td><input id='check' name='include[]' type='checkbox' class='input-field checkbox' value='" + buttonId + "' checked='checked' /></td>" + $(this).parent().parent().html() + "</tr>");
(aspx页面)
string[] claimsID = Request.Form.GetValues("include[]");
非常感谢您的帮助!
更新:
发现问题了!
添加代码:
data += "&upload=1";
...
$.ajax({
...
data: data,
...
就是这样。感谢所有回答的人!