我在MVC Razor页面中嵌入了以下jQuery函数:
<script type="text/javascript">
$(document).ready(function () {
$("input[name=MultiListsetting]").change(function () {
var valueString = "";
$("input[name=MultiListsetting]:checked").each(
function () {
valueString += this.id + ","
}
);
var MultiValueListResult = valueString.slice(0, -1);
alert(MultiValueListResult);
});
});
</script>
这将根据一系列复选框的id属性输出一个字符串。当复选框值更改时,将重建字符串。因此,通过3个复选框,全部选中,函数将输出:“checkboxID1,checkboxID2,checkboxID3”,直到更改为止。这是我们的数据库服务器为这组复选框存储值的方式。我现在需要完成的是将此函数输出的字符串传递给同一Razor页面上的隐藏HTML元素。
@Html.Hidden("SetViewModel[" + i + "].Value", [string output here])
jQuery会允许这一举动吗?我可以以某种方式采取“MultiValueListResult”并将其插入隐藏控件吗?我还在研究。
答案 0 :(得分:1)
你在模板中混合了执行时间;您的HTML隐藏字段将在执行jQuery之前很久就会出现在页面上。你需要做的只是做你隐藏的领域:
@Html.HiddenFor(x => x.MyPropertyName);
然后在你的回调中,只需更新它的值:
$('#myElement').change(function()
{
$('#MyPropertName').val(MultiValueListResult);
});
当表单被回发后,所选集合的值将包含在隐藏值中。