Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Sou iniciante em JS e estou fazendo o seguinte.
Eu tenho 1 botão, quando eu clicar no botão esse botao vai ficar desabilitado durante alguns segundos, depois ele volta ao normal.
Eu fiz um teste no FF e funciona normal, no IE ele dá um erro de página, esse erro só ocorre quando o botão desabilitado volta a ficar habilitado.
Erro: "undefined" é nulo ou não é objeto.
HTML
<BUTTON type="button" onclick="clicarBotao(this);">Clique Aqui</BUTTON>JS
function clicarBotao (button){ var cubo = document.getElementById("cubo"); cubo.style.backgroundColor = "#FFAA44"; button.setAttribute("disabled", "true"); setTimeout(resetarBotao, 2000, button);}function resetarBotao(button){ var cubo = document.getElementById("cubo"); cubo.style.backgroundColor = "transparent"; button.removeAttribute("disabled");}CSS
#cubo { width: 20px; height: 20px; border: 2px inset gray; margin-bottom: 10px;}
Alguém sabe como eu posso arrumar?
Grato.
Fiz o teste, mas continua dando o mesmo erro, no IE não funciona, só funciona no FF.
Identifica o BUTTON da mesma forma que você faz com o CUBO, através do document.getElementById("ID_ELEMENTO");.
Uma dica não use mais:
<BUTTON type="button" onclick="clicarBotao(this);">Clique Aqui</BUTTON>
pois pode ser umdos motivos por não funcionar a tag "button" caiu em desuso, faça assim:
<input type="button" value="Click aqui" onclick="clicarBotao(this);">
ok?
Valeu pela dica Tiago Cardoso, já alterei essa parte.
vagner.net, por favor vê se eu fiz correto.
function clicarBotao (button){ var cubo = document.getElementById("cubo"); cubo.style.backgroundColor = "#FF6600"; button.setAttribute("disabled", "true"); setTimeout(clearDemo, 2000, button);}function clearDemo(button){ var button = document.getElementById("button"); var cubo = document.getElementById("cubo"); cubo.style.backgroundColor = "transparent"; button.removeAttribute("disabled");}
Porque agora ele dá uma mensagem assim:
'null' é null ou não é objeto.
agora ele não funciona no IE e no FF.
Não usa o mesmo nome do parametro da função em uma variável(button) esubstitui o removeAttribute pelo disabled = false.
Aliás, se você vai escrever o ID direto no método getElementById, nem precisa passar aquele parâmetro.
PS: você definiu o ID do seu botão como "button"???
PS: você definiu o ID do seu botão como "button"???
tinha esquecido, valeu pelo toque.Mais uma coisa, é possível eu alterar o texto do botão?EX:no botão normal: EnviarNo botão clicado (desabilitado): Enviando mensagemExiste algum comando que eu posso estudar que faça isso?Grato.
É só você trocar o BUTTON.value, pelo texto que você quer!!!
Já fiz funcionar, que beleza.Valeu.
Em vez de remover o atributo DISABLED, só troca o valor dele:
function resetarBotao(button){ var cubo = document.getElementById("cubo"); cubo.style.backgroundColor = "transparent"; button.disabled = false;}
button.disabled = false;
OK..!!?? T+...