asp.net-mvc - 如何在ajax调用后更改特定按钮值

标签 asp.net-mvc jquery ajaxform

我有一个项目列表,每个项目上都有按钮。当我单击该按钮时,我会进行服务器调用,在调用之后我需要更改按钮文本。所以我写这个函数来ajaxify调用:

$('.form').ajaxForm({
            beforeSubmit: function () {                
            },
            success: function (result) {
                $('.itemHoverBox').attr('value', 'Confirmed');
            },
            error: function (xhr, textStatus, errorThrown) {           
            }
        });

这是操作按钮:

@using (Html.BeginForm("Confirm", "Products", new { productId = @t.ProductId }, FormMethod.Post, new { @class="form"}))
{
<input style="width: 60px;" class="itemHoverBox button white" type="submit" value="Confirm" />
}

但这会更改页面上的所有itemHoverBox,而我正在尝试的只是更改我单击的按钮。就像您在 stackoverflow 上单击最喜欢的问题星号时一样。
我的操作方法暂时返回 void:

[HttpPost]
        public void CollectTicket(int ticketId)
        {
            ...           
        }

最佳答案

您可以在闭包中捕获表单:

$('.form').each(function() {
    var form = $(this);
    form.ajaxForm({
        success: function (result) {
            form.find('.itemHoverBox').attr('value', 'Confirmed');
        }
    });
});

或者使用context参数甚至更简洁:

$('.form').each(function() {
    var form = $(this);
    form.ajaxForm({
        context: form,
        success: function (result) {
            // Here this will equal to the context object we specified
            this.find('.itemHoverBox').attr('value', 'Confirmed');
        }
    });
});

关于asp.net-mvc - 如何在ajax调用后更改特定按钮值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054402/

相关文章:

c# - ASP.Net WEB API 无法从移动设备发布大型 JSON 数据

java - 显示包含非 ajax 页面的加载对话框

javascript - 使用ajax提交表单但得到 "Illegal Invocation"

javascript - ajax表单: success doesn't work as expected

c# - Url.Action 假定额外的 RouteValue

c# - 在不创建实现的情况下实现接口(interface)(动态代理?)

javascript - 对于在 javascript 和 html 中无法正常工作

javascript - 所需文件上传进度条

jquery - 为什么 $(#textbox1)[0].value 中的 [0] 用于获取 asp.net 控件中的标量值?

javascript - 使用 AJAX 查询填充表单字段