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:
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.
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]
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…
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