当前位置:  开发笔记 > 编程语言 > 正文

当我禁用提交按钮以防止双击时,为什么我的表单没有发布?

如何解决《当我禁用提交按钮以防止双击时,为什么我的表单没有发布?》经验,为你挑选了3个好方法。

像地球上的其他每个Web开发人员一样,用户双击表单上的提交按钮时遇到问题.我的理解是,处理这个问题的传统方法是在第一次点击后立即禁用按钮,但是当我这样做时,它不会发布.

我对此做了一些研究,上帝知道有足够的信息,但其他问题,如表单提交上的禁用按钮,禁用按钮似乎工作.提交后禁用按钮的原始海报似乎与我有同样的问题,但没有提及如何/如果他解决它.

这里有一些关于如何重复它的代码(在IE8 Beta2中测试,但在IE7中有同样的问题)

我的aspx代码

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>






    


Disable button on first click

我的cs代码

using System;

public partial class _Default : System.Web.UI.Page 
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        btn.Click += new EventHandler(btn_Click);
        btn.OnClientClick = "btn_onClick();";
    }

    void btn_Click(object sender, EventArgs e)
    {
        lit.Text = DateTime.Now.ToString("HH:mm:ss");
    }
}

请注意,单击该按钮时,将发生回发,并更新时间.但是当您选中复选框时,下次单击该按钮时,该按钮将被禁用(按预期方式),但永远不会进行回发.

我在这里想念的是什么?

提前致谢.



1> Echostorm..:

我想你只是错过了这个标签:

UseSubmitBehavior="false"

试试这样:


说明


@JohnMacIntyre - 对不起,您是否担心asp.net控件中的微软特定技术?这看起来有点傻,不是吗?asp.net是微软特定的开始.

2> Mauricio Sch..:

fallen888是对的,你的方法不能跨浏览器工作.我使用这个小片段来防止双击.



3> Pavel Chuchu..:

UseSubmitBehavior="false"将提交按钮转换为普通按钮().如果您不希望发生这种情况,可以隐藏提交按钮并立即在其位置插入禁用按钮.因为这种情况发生得太快,所以看起来按钮会被禁用给用户.详情请见Josh Stodola的博客.

代码示例(jQuery):

$("#<%= btnSubmit.ClientID %>").click(function()
{
  $(this)
    .hide()
    .after('');
});

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有