Type do input

Como eu modifico um type de um input no ie …?
no firefox encontrei duas formas


1ª
     botao=document.getElementById("id_botao");
 
     botao.setAttribute("type","button");

2ª
     botao=document.getElementById("id_botao");

     botao.type="button"

Mas nenhuma dessas formas funciona no ie estou testando no 6,
alguém sabe como eu posso fazer isso…?

Não testei mas ve se funciona:

document.getElementById(‘idBotao’).type = ‘text’;

tentei aqui cara não funciona esse ie é um lixo mesmo…

Olá,

No IE acredito que tu vai precisar fazer algo como.

var input = document.getElementById('idBotao') input.setAttribute('type','text');

]['s

www.gujs.com.br
Fórum de JavaScript.

Não funciona cara alguém que já fez me da uma luz há dias venho tentando fazer isso.

P/Schuenemann

Cara acho que vc deve ler o indice Assuntos gerais (Off-topic)
portanto qualquer dúvida que eu tiver vou tirar aqui mesmo…!

[quote=Puppets]P/Schuenemann

Cara acho que vc deve ler o indice Assuntos gerais (Off-topic)
portanto qualquer dúvida que eu tiver vou tirar aqui mesmo…![/quote]

Eu não li isso, não é possível … o cara ta te passando um local mais especifico para a sua dúvida …
Eu entendo seu vicio no GUJ também sou assim … mas não é pra tanto que todas as suas dúvidas devem ser esclarecidas aqui né…

Antes de mais nada, deixa eu perguntar, qual o propósito de você trocar o type do input? Acho que seu problema é limitação do IE em relação a mudança do atributo type, mas não quanto ao uso de setAttribute. Se você experimentar:

document.getElementById('id').setAttribute('value',valorNovo);

isso irá funcionar. Você pode tentar uma abordagem alternativa, removendo o elemento da árvore DOM da página, e depois disso usando document.createElement(‘input’), e depois setando normalmente os atributos, como nesse exemplo que fiz:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Criando Input dinamicamente </TITLE>

<SCRIPT LANGUAGE="JavaScript">
<!--
function incluiInput(){
	document.getElementById('frm').removeChild(document.getElementById('dina'));
	var input = document.createElement('input');
	input.setAttribute('type','text');
	input.setAttribute('value','NovoElemento');
	document.getElementById('frm').appendChild(input);
	
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<form id="frm">
	<input type="button" id="dina" onclick="incluiInput()"/>
</form>
</BODY>
</HTML>

Você só precisaria dar o append na posição específica em que você quer adicionar seu elemento. Espero ter ajudado.

[]'s

p/legionarioba

Cara muito obrigado pela sua boa vontade…!
funciono perfeitamente…!!!

O problema que está ocorrendo comigo e que estou fazendo uma
aplicação em asp.net dai já da pra vc ver o problema…
quando eu coloco um form herdando um masterpage em asp.net
ele simplismente modifica todos os campos do form e mais
ele cria um codigo do form sozinho cara, tem componentes no asp.net
para fazer validação de form, mais eu gosto de fazer meu
código, eu prescisava fazer isso para que meu código verificasse todo o form
antes de dar o submit, devido a isso eu prescisava mudar o type para button
para que ele chamasse a função que eu criei e depois da o submit no form

Cara até ai funciono perfeitamente mais outro coisa deu pau no lixo do ie…

Eu presciso setar um atributo onclick para ele chamar uma função cetro ai tah o código

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
    <HTML>  
    <HEAD>  
    <TITLE> Criando Input dinamicamente </TITLE>  
      
    <SCRIPT LANGUAGE="JavaScript">  
    <!--  
	
  function teste()
  {
		alert("teste");
  }
	
	
   function incluiInput()
   {  
      document.getElementById('frm').removeChild(document.getElementById('dina'));  
      var input = document.createElement('input');  
      input.setAttribute('type','button');  
      input.setAttribute('value','NovoElemento');  
      input.setAttribute('onclick','teste()');  
      document.getElementById('frm').appendChild(input);  
         
   }  
   //-->  
  </SCRIPT>  
   </HEAD>  
   <BODY>  
   <form id="frm">  
       <input type="button" id="dina" onclick="incluiInput()"/>  
  </form>  
  </BODY>  
 </HTML>  

Veja que também coloquei o novo atributo input.setAttribute(‘onclick’,‘teste()’); para ele chamar uma função qualquer, funciono perfeitamnte no firefox já no lixo do ie não funciona vc sabe o porque cara…?

[quote=Puppets]Cara até ai funciono perfeitamente mais outro coisa deu pau no lixo do ie…

Eu presciso setar um atributo onclick para ele chamar uma função cetro ai tah o código

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
    <HTML>  
    <HEAD>  
    <TITLE> Criando Input dinamicamente </TITLE>  
      
    <SCRIPT LANGUAGE="JavaScript">  
    <!--  
	
  function teste()
  {
		alert("teste");
  }
	
	
   function incluiInput()
   {  
      document.getElementById('frm').removeChild(document.getElementById('dina'));  
      var input = document.createElement('input');  
      input.setAttribute('type','button');  
      input.setAttribute('value','NovoElemento');  
      input.setAttribute('onclick','teste()');  
      document.getElementById('frm').appendChild(input);  
         
   }  
   //-->  
  </SCRIPT>  
   </HEAD>  
   <BODY>  
   <form id="frm">  
       <input type="button" id="dina" onclick="incluiInput()"/>  
  </form>  
  </BODY>  
 </HTML>  

Veja que também coloquei o novo atributo input.setAttribute(‘onclick’,‘teste()’); para ele chamar uma função qualquer, funciono perfeitamnte no firefox já no lixo do ie não funciona vc sabe o porque cara…? [/quote]

Que tal dar uma verificada na W3Schools :
http://www.w3schools.com/dom/dom_nodes_create.asp

Rpz…acho que ai você não pode fazer via setAttribute. Acho que quando você tem um input, e explicitamente faz onClick=“minhaFuncao()” no HTML , ele ja associa o listener do Click com sua função. Você provavelmente terá que fazer essa associação, “atachando” o evento onClick e associando com sua função, ai acredito que funcione…

[]'s

Só complementando, acesse o site DevGuru também…

p/legionarioba
segui sua dica cara e funciono perfeitamente…!
valew mesmo.

olha ai uma parte do codígo:


    //pega o form
	var frm=document.getElementsByTagName("form")[0];
	
		filho=document.createElement("input");
	
	//Pegando o botão do asp.net
    botao=frm.ctl00_ContentPlaceHolder1_mostraCadastro_bntEnviaDados;
    
    //Pegado o pai
    pai=botao.parentNode;
    
    
    //Removendo conteudo do pai
    pai.removeChild(botao);
    
    
	//Criando um novo botão
	novoBotao=document.createElement("input");
	novoBotao.setAttribute("type","button");
	novoBotao.setAttribute("value","Caralho");
	novoBotao.setAttribute("id","ctl00_ContentPlaceHolder1_mostraCadastro_bntEnviaDados");
	
	//Adicionando o novo botão ao pai
	
	novoBotao.onclick=function validaFrmCadastro()
    {
	
		/**
		* @author puppets
	 	* @copyright ....
	 	* @description Função que valida o from da cadastro  
	 	*/
	 
		
	 
		var div;
	
		//Pega o form
		var frm=document.getElementsByTagName("form")[0];
	 
		//Pega o div 
		verifica=document.getElementsByTagName("div");
	
	
		
	
		botao=frm.ctl00_ContentPlaceHolder1_mostraCadastro_bntEnviaDados;
	
		
	
	
	
    	for(i=0;i<verifica.length;i++)
		{
			if(verifica[i].id=="erros")
			{
				div=verifica[i];
			}
		}
	
	 
		div.style.display="none";
		chave=true;
		validaCadastro="";
		cpf="";
		tel="";
		var reMail;
		reEmail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	
	
		div.style.display="none";
	
	
	
		nome =frm.ctl00_ContentPlaceHolder1_mostraCadastro_txtNome.value;
	
		sobrenome =frm.ctl00_ContentPlaceHolder1_mostraCadastro_txtSobrenome.value;
	
		nascimento =frm.ctl00_ContentPlaceHolder1_mostraCadastro_txtNascimento.value;
	
		sexo =frm.ctl00_ContentPlaceHolder1_mostraCadastro_dropSexo;
	
		cpf = frm.ctl00_ContentPlaceHolder1_mostraCadastro_txtCpf.value;
	
		email=reEmail.exec(frm.ctl00_ContentPlaceHolder1_mostraCadastro_txtEmail.value);
	
		endereco =frm.ctl00$ContentPlaceHolder1$mostraCadastro$txtEndereco.value;
	
		bairro =frm.ctl00_ContentPlaceHolder1_mostraCadastro_txtBairro.value;
	
		cidade = frm.ctl00_ContentPlaceHolder1_mostraCadastro_txtCidade.value;
	
		estado=frm.ctl00_ContentPlaceHolder1_mostraCadastro_dropEstado; .... continua