我正在使用JavaScript来禁用按钮。在IE中工作正常但在FireFox和chrome中没有,这是我正在处理的脚本:
function disbtn(e) {
if ( someCondition == true ) {
document.getElementById('btn1').disabled = true;
} else {
document.getElementById('btn1').disabled = false;
}
在我的HTML中,我有:
<input type="button" id="btn1" value="submit" />
答案 0 :(得分:40)
使用setAttribute()和removeAttribute()
function disbtn(e) {
if ( someCondition == true ) {
document.getElementById('btn1').setAttribute("disabled","disabled");
} else {
document.getElementById('btn1').removeAttribute("disabled");
}
}
答案 1 :(得分:3)
尝试直接设置disabled
属性:
if ( someCondition == true ) {
document.getElementById('btn1').setAttribute('disabled', 'disabled');
} else {
document.getElementById('btn1').removeAttribute('disabled');
}
答案 2 :(得分:1)
getElementById的浏览器支持总是存在奇怪的问题,请尝试使用以下代码:
// document.getElementsBySelector are part of the prototype.js library available at http://api.prototypejs.org/dom/Element/prototype/getElementsBySelector/
function disbtn(e) {
if ( someCondition == true ) {
document.getElementsBySelector("#btn1")[0].setAttribute("disabled", "disabled");
} else {
document.getElementsBySelector("#btn1")[0].removeAttribute("disabled");
}
}
或者,拥抱jQuery,你可以简单地执行此操作:
function disbtn(e) {
if ( someCondition == true ) {
$("#btn1").attr("disabled", "disabled");
} else {
$("#btn1").removeAttr("disabled");
}
}
答案 3 :(得分:0)
有些时候,某些javascript函数无法在某些特定的浏览器上运行。我建议你开始使用JQuery,它可以为你提供规范化的JS,同时满足不同的浏览器需求
$('#btn1').each(function(){
this.disabled = false;
});
答案 4 :(得分:0)
另一种选择:
document.formname.elementname.disabled=true
在FF和IE上工作! :)
答案 5 :(得分:-1)
坚持原生(布尔)属性支持及其强大的语法,如:
[elem] .disabled =条件? true:false; //完成!
并且对于我们自己良好的集体编码经验,请同样坚持其他人也支持它。
答案 6 :(得分:-1)
我已经尝试了所有可能性。除了以下之外,没有什么对我有用。 var element = document.querySelectorAll(“input [id = btn1]”); 元素[0] .setAttribute( “禁用”,TRUE);