0

2つの送信ボタンがあるフォームがあります(1つはメインフォームにあり、もう1つは非表示のdivにあり、特定のシナリオで表示されます)。

最初のシナリオでは、送信ボタンは正常に機能していますが、divがポップアップウィンドウとして表示されている場合、divの送信ボタンをクリックしてもアクションは発生しません。

ただし、divは親フォームの一部でもあるため、フォームをコントローラーに送信する必要があります。
この背後にある私の意図は、モデルバインディングを開始し、コントローラー内のすべてのフォーム要素の値を収集することです。

Jqueryを使用してフォームの投稿を強制し、2番目の送信ボタンのクリックでモデルバインディングを開始できますか?私のフォームは次のようになります:

     @using (Html.BeginForm("SelectSuggestedAddress", "Dispatch", FormMethod.Post, new { id = "myform" }))
        { ....

     <p>
         <input id= "btn1" type="submit" value="Save" />
    </p>
}

&divには、別の送信ボタンを備えたいくつかのコントロールがあります。

<div style="display: none">
@Html.EditorFor(model => model.Address)
    <p>
         <input id= "btn2" type="submit" value="Save" onclick="InitiatePost()" />
    </p>
    }
<div>

次に、別のjavascriptファイルで:

function InitiatePost() {
    alert("Posting the Form");
    $('#btn2').click(function () {
        $('#myform').submit();
    });

ポストを開始し、モデルバインディングを実行し、コントローラー内のすべてのフォーム要素の値を収集する必要があります。

私の場合、ボタンをクリックするとアラートが発生しますが、POSTは発生しません。コードの修正を手伝ってください。

4

1 に答える 1

0
    $(function() {    
        $('#btn2').click(function() {
            $('#btn1').trigger('click');
        });
    });
于 2012-05-09T15:27:01.610 に答える