0

语言:Javascript (PHP页面)

我在一个页面上有2 个按钮
: -- 一个是上传图片按钮 ( #upload ),
-- & 另一个是“保存/提交表单”按钮 ( .multi-accordion-submit )。

下面的 .js 所做的是在用户使用另一个按钮 ( #upload ) 和#upload内的文本显示“上传...” 时,在上传文件时禁用提交按钮 ( .multi-accordion-submit )。

在上传和文本返回到#upload的“上传更多”后,现在应该删除.multi -accordion-submit按钮的 disabled 属性。

但问题是,它仍然被禁用且不可点击,使得提交按钮(.multi-accordion-submit)无用。

我不知道如何修复它,下面的代码看起来很好并且应该可以工作。

任何指导和帮助将不胜感激!谢谢你的时间。

$(function () {
    var btnUpload = $('#upload');
    var status = $('#status');
    var url = $('#upload_path').val();
    new AjaxUpload(btnUpload, {
        action: url,
        //Name of the file input box
        name: 'image',
        onSubmit: function (file, ext) {
            $('#upload-error').hide();
            if (!(ext && /^(pdf|ai|psd|bmp|cdr|clk|gif|jpg|jpeg|ppt|pub|doc|docx|pcx|pic|pict|pct|png|ps|tif|tiff|emf|wmf|indd)$/.test(ext))) {
                // check for valid file extension 
                $('#upload-error').show();
                return false;
            }
            btnUpload.text('Uploading...');
            $('.multi-accordion-submit').attr('disabled', true);
        },
        onComplete: function (file, response) {
            if ($('.file-elements').length > 0) {
                if ($('.file-elements:visible').length == 0) {
                    window.location.href = document.location.href;
                } else {
                    btnUpload.text('Upload More');
                    $('.multi-accordion-submit').attr('disabled', false);
                }
            } else {
                btnUpload.text('Upload More');
                $('.multi-accordion-submit').attr('disabled', false);
            }


            //Add uploaded file to list
            if (response === "success") {
                $('<li></li>').appendTo('#files').html(file).addClass('upload-files');
            } else {
                $('<li></li>').appendTo('#files').text(file).addClass('upload-files');
            }
        }
    });
});
4

2 回答 2

3
//try to use
$('.multi-accordion-submit').attr('disabled','disabled'); 
//and
$('.multi-accordion-submit').removeAttr('disabled');
于 2012-10-22T06:07:59.497 回答
3

属性disabled是否存在(不考虑它的值)

要从元素中删除禁用状态,您需要删除disabled属性而不仅仅是更改它的值。

$('.multi-accordion-submit').removeAttr('disabled');

注意:
实际上它可能与 jQuery 混淆,因为在 1.6+propremoveProp引入了方法来处理本机属性,但是要删除禁用状态,您需要使用prop而不是removeProp(一旦删除本机属性就不能再次添加)

$('.multi-accordion-submit').prop('disabled', false);
于 2012-10-22T06:14:44.813 回答