0

言語:Javascript (PHPページ)

1つのページに2つのボタン
があります。 -1つは画像のアップロードボタン(#upload)、
もう1つは「フォームの保存/送信」ボタン(.multi-accordion-submit)です。

以下の.jsは、ユーザーが他のボタン( #upload)を使用している間、ファイルのアップロード中に送信ボタン(.multi-accordion-submit)を無効し、#upload内のテキストに「Uploading...」と表示されます。

アップロードとテキストが#uploadの「UploadMore」に戻った後、.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');

注: 1.6 以降ではネイ​​ティブ プロパティを操作するためにメソッドが導入されたため、実際には jQuery と混同する可能性がありますが、無効な状態を削除するには、使用する必要があり、使用し
ない必要があります(一度削除されたネイティブ プロパティを再び追加することはできません)。propremoveProppropremoveProp

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