0

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

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

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

这项工作在 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);
            }
4

2 回答 2

2

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

var waitingForAjax = false;

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

    waitingForAjax = true;
    // ajax call
});

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

于 2012-07-05T15:34:41.227 回答
1

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

于 2012-09-13T06:21:11.130 回答