0

我将 jqWidgets 与 ASP.MVC 一起使用。我正在填充一个下拉列表,当提交表单时,我想在按下按钮时将下拉列表中的选定值传递给我的控制器。

如果我硬编码如下值,一切正常:

@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());" }))
4

1 回答 1

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,并且在提交表单时,选定的值将自动发布到控制器。

于 2012-06-25T08:39:59.507 回答