我正在使用ASP.MVC的jqWidgets。我正在填写一个下拉列表,当提交表单时,我想在按下按钮时将下拉列表中的选定值传递给我的控制器。
如果我硬编码下面的值,一切正常:
@using (Html.BeginForm("GetRace", "Schedule", new { @id = "abc" },FormMethod.Post))
{
<div id="okBtn">
<input id="Search" type="submit" value="OK" />
</div>
}
我希望能够调用Javascript函数,如:
function getListItem()
{
return selectItem;
}
但是当我将BeginForm更改为
时,我似乎无法接到调用 @using (Html.BeginForm("GetRace","Schedule",@ID = new {onsubmit = "return (getListItem());" }))
答案 0 :(得分:0)
您可以在表单中使用隐藏字段:
@using (Html.BeginForm("GetRace", "Schedule", new { id = "abc" }, FormMethod.Post, new { id = "myForm" }))
{
@Html.Hidden("SelectedListItem")
<div id="okBtn">
<input id="Search" type="submit" value="OK" />
</div>
}
然后不引人注意地订阅此表单的.submit()
事件并设置隐藏字段的值:
$(function() {
$('#myForm').submit(function() {
var selectedItem = 'some value that you will read from the dropdown';
$('#SelectedListItem').val(selectedItem);
});
});
甚至更好,只需将下拉列表放在表单中即可。这样您根本不需要使用任何javascript,并且在提交表单时,所选值将自动发布到控制器。