看看这段代码:
[WebMethod]
public static string GetFacilities(string id)
{
int hotelid = System.Convert.ToInt32(Tools.DecryptString(id));
string ret = "";
foreach (var item in new FacilityGroupBL().Load())
{
if(item.Facilities.Count != 0)
{
ret += "<fieldset>";
if (item.Facilities.Count() != 0)
{
foreach (var subitem in item.Facilities)
{
if (subitem.HotelFacilities.Where(obj => obj.HotelId == hotelid).Count() != 0)
ret += "<input type='checkbox' checked='false' />" + subitem.Name;
else
ret += "<input type='checkbox' checked='true' />" + subitem.Name;
}
}
else
{
ret += "There is no facility in this fieldset.";
ret += "</fieldset>";
}
}
}
return ret;
}
通过这段代码我在DIV中加载一些复选框,然后用户更改一些复选框并按下SAVE按钮。此时,我应该将这些复选框的值发送到服务器以更新我在数据库中的数据。我不知道怎么?:(请帮忙
注意:此probem的默认代码在这里,但不起作用($(“#FacilitiesDIV input [type = checkbox]”)。serializeArray()为空)
$.ajax({
type: "POST",
url: "HotelsList.aspx/SaveFacilities",
data: "{ 'id' : '" + $("#HiddenField").val() + "', 'Facilities' : '" + $("#FacilitiesDIV input[type=checkbox]").serializeArray() + "' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
},
error: function () {
$('#dialogMessage').dialog('open');
$('#dialogMessage span').html("Operation Error");
}
});
答案 0 :(得分:2)
$(“#FacilitiesDIV input [type = checkbox]”)。serializeArray(),因为你使用“#”引用元素,那么你需要给fieldset元素一个唯一的ID,假设你有 html喜欢
<fieldset> <input type='checkbox' checked='false' /> some text
<input type='checkbox' checked='false' /> some text
</fieldset>
set the id to element <fieldset id = 'FacilitiesDIV'>
答案 1 :(得分:0)
我相信如果你给每个复选框命名,它应该有效,即:
<input type='checkbox' checked='false' name="mycheckboxes" />