我有一个列表,如果项目和每个项目我有按钮。当我点击该按钮时,我进行服务器调用,然后在该调用之后我需要更改按钮文本。所以我将此函数写入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上点击这里最喜欢的问题明星一样
我的action方法现在返回void:
[HttpPost]
public void CollectTicket(int ticketId)
{
...
}
答案 0 :(得分:3)
您可以在闭包中捕获表单:
$('.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');
}
});
});