2

b.html在登录后将用户从 a.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

使用.prop('disabled', false).prop('disabled', true)

来自 jQuery .prop()(setter)文档

.prop() 方法是设置属性值的便捷​​方法——尤其是在设置多个属性、使用函数返回的值或同时设置多个元素的值时。selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked,在设置或时应该使用它defaultSelected。从 jQuery 1.6 开始,这些属性不能再用 .attr() 方法设置。它们没有对应的属性,只是属性。

属性通常会影响 DOM 元素的动态状态,而不会更改序列化的 HTML 属性。示例包括输入元素的 value 属性、输入和按钮的 disabled 属性或复选框的 checked 属性。应该使用 .prop() 方法来设置禁用和检查,而不是 .attr() 方法。.val() 方法应该用于获取和设置值。

于 2013-09-18T06:37:05.537 回答
1

您在普通的 JS DOM 节点上使用 jQuery 方法(但是 removeAttribute 应该可以工作?),它应该是:

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

请注意,这必须添加到b.html中,因为一旦您离开页面,javascript 就有点晚了,它在下一页什么都不做?

于 2013-09-18T06:32:49.973 回答