2

ログイン後にユーザーを a.html からb.htmlページにリダイレクトしています。Select Imagesページに「disabled」属性のファイル選択ボタン「 」がありますがb.html、これは FB ログイン後にのみ有効にしたいと考えています。以下は、このための私のコードです。

function fblogin(){
    FB.login(function(response) {
        if (response.status == 'connected') {
            login();            
        } else {                
            //window.location.reload();
        }
    }, {scope:'email,publish_stream'});
    return false;
}
function login() {
    window.location = "b.html";             
    document.getElementById('uploadbtn').removeAttribute('disabled');
    document.getElementById("genPNG").attr('disabled','enabled');    
    document.getElementById("genJPG").removeAttribute('disabled');       
}

上記のコードではうまくいかないので、

document.getElementById('uploadbtn').removeAttribute('disabled');
document.getElementById("genPNG").attr('disabled','enabled');    
document.getElementById("genJPG").removeAttribute('disabled'); 

ページにb.html。どうすれば思い通りに動作させることができますか?どんな助けでも大歓迎です。前もって感謝します。

4

2 に答える 2

1

プレーンなJS DOMノードでjQueryメソッドを使用しています(ただし、removeAttributeは機能するはずですか?)、次のようにする必要があります。

$('#uploadbtn').prop('disabled', false);

これはb.htmlに追加する必要があることに注意してください。ページを離れると、javascript には少し遅れます。次のページでは何もしません。

于 2013-09-18T06:32:49.973 に答える
1

.prop('disabled', false)または_.prop('disabled', true)

jQuery .prop()(セッター)のドキュメントから:

.prop() メソッドは、プロパティの値を設定する便利な方法です。特に、複数のプロパティを設定する場合、関数によって返される値を使用する場合、または一度に複数の要素に値を設定する場合に便利です。selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked,またはを設定するときに使用する必要がありますdefaultSelected。jQuery 1.6 以降、これらのプロパティは .attr() メソッドで設定できなくなりました。それらには対応する属性がなく、単なるプロパティです。

プロパティは通常、シリアライズされた HTML 属性を変更することなく、DOM 要素の動的な状態に影響を与えます。例には、input 要素の value プロパティ、inputs とボタンの disabled プロパティ、またはチェックボックスの checked プロパティが含まれます。.attr() メソッドの代わりに、.prop() メソッドを使用して無効化およびチェックを設定する必要があります。値の取得と設定には .val() メソッドを使用する必要があります。

于 2013-09-18T06:37:05.537 に答える