IE 7如何在单击后禁用按钮

时间:2013-10-01 19:35:41

标签: javascript jquery internet-explorer

在UI上有一个输入按钮列表,然后提交表单。

新要求是点击后disable按钮。我试过了

j("input.allowed-task").each(function() {
document.getElementById(j(this).attr('id')).disabled = true;
});

j("input.allowed-task").attr('disabled', 'disabled');

这一切在firefox,IE8,IE9上运行良好

但是当谈到IE7时,上述方法都不起作用。禁用该按钮后会忽略所有进程,因此表单甚至无法提交,实际上并不知道如何修复它。

BTW我们在jquery 1.4上,因此不支持.prop

4 个答案:

答案 0 :(得分:2)

我建议使用提交事件而不是点击以便您可以确保抓住它,否则人们仍然可以通过按输入来提交。

$("#myform").submit(function(e){
    // prevent default so that we completely control when the form submits
    e.preventDefault();
    var $form = $(this);
    if ( !$form.data("submitted") ) {
        // form hasn't been submitted yet, set flag, disable button, then submit the form.
        $form.data("submitted",true);
        $("#submitbtn").attr("disabled","disabled"); 
        // obviously disable whatever you need to, 
        // you don't HAVE to disable it though because
        // the flag and e.preventDefault will prevent
        // them from submitting anyway.
        this.submit(); // submits the form, bypassing this submit handler
    }    
});

答案 1 :(得分:0)

您似乎应该能够直接在代码中提交表单。

j("input.allowed-task").click(function() {

    // disable all buttons
    j("input.allowed-task").attr('disabled', 'disabled');

    // submit the form
    YOUR_FORM.submit();

    return false;
});

答案 2 :(得分:0)

也许这就是你要找的东西:

j('input.allowed-task').click(function () {
    // Disable the element
    j(this).attr('disabled', 'disabled');

    // Submit the form
    j(this).closest('form').submit();
});

答案 3 :(得分:0)

replaceWith()可用吗?

j("input.allowed-task").replaceWith('<input type="submit" disabled="disabled">');