【问题标题】:Get value of submit button from Ajax call从 Ajax 调用中获取提交按钮的值
【发布时间】:2020-10-25 22:40:33
【问题描述】:

Action 中提交按钮的值始终为 null。

我需要更改什么才能知道点击了哪个提交按钮?

<form id="actionInvitation">
                    <div>
                        <ul>
                            <li>
                                @Model.TeamInviteBy
                            </li>
                        </ul>
                    </div>       
                    <input type="submit" name="actionBtn" id="acceptBtn" value="Accept Invitation" />
                    <input type="submit" name="actionBtn" id="declineBtn" value="Decline Invitation" />
                </form>


$('#actionInvitation').submit(function (e) {
        e.preventDefault();
        var formData = new FormData($('#actionInvitation')[0]);
        $.ajax({
            url: '@Url.Action("ActionInvitation", "Home")',
            type: 'post',
            cache: false,
            processData: false,
            contentType: false,
            data: formData,
            success: function (data) {
                $("#invitationActionMessage").append('Invitation Accepted');
            }
        });
    });

//Action
public async Task<IActionResult> ActionInvitation(UserViewModel userViewModel, string acceptBtn, string declineBtn)

【问题讨论】:

  • 你好@Ryn901,如果我的回答对你有帮助,可以标记为答案,对以后遇到同样问题的人会有帮助。

标签: ajax asp.net-core-mvc form-submit


【解决方案1】:

您的formData 不会包含您需要传递的对象。

您可以像下面这样更改您的代码:

<form id="actionInvitation">
<div>
    <ul>
        <li>
            @Model.TeamInviteBy
            <input type="hidden" name="TeamInviteBy" value="@Model.TeamInviteBy">
        </li>
    </ul>
</div>
<input type="submit" name="actionBtn" onclick="Send(event,this)"  value="Accept Invitation" />
<input type="submit" name="actionBtn" onclick="Send(event,this)"  value="Decline Invitation" />
</form>
@section scripts{ 
<script>
    function Send(ev,el) {
        ev.preventDefault();
        var data = $("input[name='TeamInviteBy']").val();
        var value = $(el).val();
         $.ajax({
            url: '@Url.Action("ActionInvitation", "Home")',
            type: 'post',
            contentType: "application/x-www-form-urlencoded; charset=utf-8",
            data: { TeamInviteBy: data, actionBtn: value},
                success: function (data) {
                $("#invitationActionMessage").append('Invitation Accepted');
                }
                });
    }
</script>
}

行动:

 public async Task<IActionResult> ActionInvitation( UserViewModel userViewModel , string actionBtn)
    {
      if(actionBtn="Accept Invitation")
       {
        //...
       }
       else
       {
       }
    }

结果:

【讨论】:

    猜你喜欢
    • 2021-04-22
    • 2019-03-10
    • 2013-04-26
    • 2015-09-27
    • 1970-01-01
    • 2019-06-13
    • 2017-07-17
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多