1

フォーム送信用に 2 つの送信ボタンを設定しました。それぞれに .click() イベントを適用せずに、どの送信ボタンがクリックされたかを知りたいです。もう1つ、ASP.NET MVC 3を使用していて、コントローラーでクリックされたボタンの名前を取得したいと考えています。

セットアップは次のとおりです。

<a class="anchorbutton">
  <input  type="submit" value="Save" id="Save" class="hrbutton"/>
</a>
<input  type="submit" value="Save & Next" id="SaveNext" class="hrbutton  anchorbutton"/>           


 $('#form').live('submit', function (e)    
{      
    e.preventDefault();
    var form = $('#form');      
    $.ajax({
        cache: false,
        async: true,
        type: "POST",
        url: form.attr('action'),
        data: form.serialize(),
        success: function (data) {
            $.ajax({
                url: 'url',
                dataType: "html",
                success: function (data) {
                    $("#div").html(data);                     

                }
            });
        }
    });
    return false;
});


[HttpPost]
public JsonResult Post(FormCollection form, string submitButton)
{         

}
4

3 に答える 3

2

クリック イベント ハンドラーを Save および SaveAndNext ボタンにバインドしてみてください。

$(document).delegate("#Save,#SaveAndNext","click",function(e){
 console.log($(this).attr("id"));//here you will know which button was pressed
 //next you can check if the form is valid or not
 if($(this).closest('form').valid()){
 //form is valid submit it ajax(ily)

 }else{
 //form is not valid
 }
});

セレクターをキャッシュすることもできます

var $this = $(this);
于 2013-09-28T19:52:44.890 に答える
2

ボタンに名前を付けます:

<a class="anchorbutton">
    <button type="submit" name="save" id="Save" class="hrbutton">Save</button>
</a>
<button type="submit" name="savenext" id="SaveNext" class="hrbutton anchorbutton">Save & Next</button>

次に、コントローラーアクションは同じ名前のパラメーターを受け取り、値があるかどうかを確認できます。

[HttpPost]
public ActionResult Post(string save, string saveNext, FormCollection form)
{
    if (!string.IsNullOrEmpty(save))
    {
        // The Save button was clicked
    }
    else if (!string.IsNullOrEmpty(saveNext))
    {
        // The Save & Next button was clicked
    }
    else
    {
        // None of the submit buttons were used or clicked to submit the form.
        // The user simply pressed the Enter key while the focus was inside
        // some of the input fields of the form
    }

    ...
}

ところで、.livejQuery 関数は非推奨です。.on代わりに使用してください。

于 2013-09-27T04:33:32.230 に答える
0

試す

    ButtonClick Event " OnClick="MyButton_Click" "
于 2013-09-27T04:32:00.250 に答える