0

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());" }))
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をまったく使用する必要はなく、フォームが送信されると、選択した値がコントローラーに自動的にPOSTされます。

于 2012-06-25T08:39:59.507 に答える