javascript - Jquery 处理提交按钮的单击事件而不中断表单发布

标签 javascript c# jquery asp.net-mvc jquery-events

我有一个提交按钮和下面的代码,一旦点击它就会执行一些操作:

<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/

相关文章:

php - Gmap3 谷歌地图使用地理编码位置使 map 居中

javascript - 我希望我的输入写在左边

javascript - 替换域 javascript(Google Apps 脚本)正则表达式之前的所有内容

c# - 最小化 ASP.Net 中的 ViewState 大小,在构造函数中初始化控件值与 OnInit 之间有区别吗?

c# - 任务计划程序参数的控制台应用程序参数(已关闭)

javascript - 选择器和性能

javascript - 使用 JQuery 在隐藏的 DIV 上使用 toggle() 的问题

javascript - 将 Flickr API 响应打印到控制台 AngularJS

C#:如何动态加载/实例化 DLL?

javascript - jQuery for(x in y) 循环