【问题标题】:Disable the button after clicking the button once IE8 issueIE8 问题点击按钮后禁用按钮
【发布时间】:2012-07-06 01:10:25
【问题描述】:

我想在点击后禁用提交按钮..让我解释如下

  1. 使用 ajax 调用完成表单提交验证,并使用禁用提交按钮 .attr("disabled",true);

  2. 如果响应为“失败”(即验证失败),则可以在 ajax 响应中使用 .attr("disabled",false) 再次单击按钮

这项工作在 FF 和 chrome 中绝对正常,但在 IE8 中,每当按下按钮时,启用禁用的效果是可见的(单击时按钮是正常的,像禁用一样可见)。不希望在 IE8 上出现这种暂时的外观变化。

我什至尝试了一些建议,例如使用 .attr("disabled","disabled");.removeAttr("disabled"); 来禁用和启用它。 代码 sn-ps:-

$("#submitBtn").click(function(event) {
    event.preventDefault();
    $("#submitBtn").attr('disabled',true);
    dataToPost = $("#Form").serialize();
    $.ajax({
        type: "POST",
        url: 'FormValidation',
        data: dataToPost ,
        success: function(response){
            if(response.status=='FAIL')
            {
                $("#submitBtn").attr('disabled',false);
                 //Some code
          }
             else{
        /* submit the form to if validation is successful */
                saveData(dataToPost);
            }

【问题讨论】:

标签: css jquery internet-explorer-8


【解决方案1】:

不幸的是,如果您使用 disabled 属性,无论您尝试什么,IE 都会将文本的颜色默认为灰色,并带有一个奇怪的白色阴影......但所有其他样式仍然有效。 :-/ 如回答 here.

【讨论】:

    【解决方案2】:

    为什么不阻止点击行为,而不是禁用按钮? 一种方法是执行以下操作:

    var waitingForAjax = false;
    
    $('yourButton').click(function(e){
        if (waitingForAjax) {
            return false;
        }
    
        waitingForAjax = true;
        // ajax call
    });
    

    然后在 ajax 失败时再次将 waitingForAjax 设置为 false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      相关资源
      最近更新 更多