我有一个提交按钮和下面的代码,一旦点击它就会执行一些操作:
<input name="Update" class="LongSubmit" id="Update" type="submit" WaitingValue="Updating..." value="Update"/>
$('.LongSubmit').click(function() {
$(this).attr('disabled', 'disabled');
$(this).addClass('AjaxInProgress');
$(this).val($('.LongSubmit').attr('WaitingValue'));
$(this).closest('form').submit(); // Added so it submits the form
})
我发现当我添加这个没有注释行的处理程序时,表单没有被提交,所以我添加了它,现在表单确实被提交了。
但是,如果我单击提交按钮以在帖子中正常单击表单,则有键 Update
,但是当我在单击处理程序中以编程方式执行此操作时,该键不存在。
我如何处理提交按钮的点击事件而不影响表单的 POST(即那里有 update
键)?
(或者我怎样才能完全模拟它,就好像处理程序不存在一样?)
正如 Zefiryn 指出的那样,这是因为禁用了按钮,但我确实想这样做以防止多次点击。
最佳答案
如果您不禁用提交按钮,您可以使用其他技术来阻止双重提交。例如:
var submitFlag = 0;
$(function(){
$('form').submit(function(){
return submitFlag++ == 0;
});
});
这将阻止任何重复提交您的表单。该标志将在页面重新加载或回发时重置(如果您使用 Ajax,您也可以扩展它以在 ajax 响应中重置该标志)。这对您有帮助吗?
关于javascript - Jquery 处理提交按钮的单击事件而不中断表单发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12052879/