我使用以下代码实现多选复选框:
<input type="checkbox" name="Location" value="S" /> S
<input type="checkbox" name="Location" value="I" /> I
<input type="checkbox" name="Location" value="T" /> T
@Html.HiddenFor(model => model.Location)
我有一些jQuery来提取值:
$("#Location").change(function () {
// grab the selected options
var grid = $.map($("input[name='Location']:checked"), function (e, i) {
return e.value;
});
$("#Location").val(grid);
console.log("Location: " + $("#Location").val());
});
控制台输出我期望的内容,例如:
Location: S,I,T
如果选中所有复选框。出于某种原因,虽然数据保存到数据库中时只保存了第一个字母。数据库字段是nvarchar(6),因此并不是它在那一端被截断。任何想法为什么没有传递字符串的完整值?
答案 0 :(得分:0)
这种行为是因为服务器收到一些名称为Location
的值,但只接受收到的第一个值。
要解决您的问题,您必须为表单中的复选框指定不同的名称,然后分别在服务器上处理它们。