J'utilise JavaScript pour désactiver un bouton. Fonctionne bien dans IE mais pas dans FireFox et Chrome, voici le script sur lequel je travaille:
function disbtn(e) {
if ( someCondition == true ) {
document.getElementById('btn1').disabled = true;
} else {
document.getElementById('btn1').disabled = false;
}
Et dans mon html j'ai:
<input type="button" id="btn1" value="submit" />
utilisez setAttribute () et removeAttribute ()
function disbtn(e) {
if ( someCondition == true ) {
document.getElementById('btn1').setAttribute("disabled","disabled");
} else {
document.getElementById('btn1').removeAttribute("disabled");
}
}
Essayez de définir l'attribut disabled
directement:
if ( someCondition == true ) {
document.getElementById('btn1').setAttribute('disabled', 'disabled');
} else {
document.getElementById('btn1').removeAttribute('disabled');
}
Il y a toujours des problèmes étranges avec la prise en charge de getElementById par un navigateur. Essayez plutôt d'utiliser ce qui suit:
// 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");
}
}
Vous pouvez également choisir jQuery pour faire simplement ceci:
function disbtn(e) {
if ( someCondition == true ) {
$("#btn1").attr("disabled", "disabled");
} else {
$("#btn1").removeAttr("disabled");
}
}
Certaines fois, certaines fonctions javascript ne fonctionnent pas sur certains navigateurs. Je vous suggérerais de commencer à utiliser JQuery, qui vous donne un JS normalisé, en prenant en compte les différentes exigences du navigateur.
$('#btn1').each(function(){
this.disabled = false;
});
Une autre alternative:
document.formname.elementname.disabled=true
Travailler sur FF et IE! :)