IE8问题发出后,单击按钮后禁用按钮

时间:2012-07-05 15:27:02

标签: css jquery internet-explorer-8

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

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

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

  3. 这项工作在FF和chrome中绝对正常但是在IE8中按下按钮时,启用禁用的效果是可见的(点击时按钮是正常的,像禁用一样可见)。不要在IE8上暂时改变外观。

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

    $("#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);
                }
    

2 个答案:

答案 0 :(得分:2)

为什么不阻止点击行为,而不是禁用按钮? 一种方法是做类似的事情:

var waitingForAjax = false;

$('yourButton').click(function(e){
    if (waitingForAjax) {
        return false;
    }

    waitingForAjax = true;
    // ajax call
});

然后在ajax上再次将waitingForAjax设置为false

答案 1 :(得分:1)

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