Carlos Rocha Posted September 24, 2013 at 09:41 PM Report #525809 Posted September 24, 2013 at 09:41 PM (edited) Olá pessoal. Bom Dia! Tenho o seguinte JS que cria inputs com o clique do rato. Porem, como os inputs são criados dentro de uma div, quando exibo o código fonte não aparecem os inputs no form. Existe uma forma de eu saber os ids do formulario com Javascript? Eis o código que cria os inputs: // Javascript Document var numero = 0; //add caixa de texto function add_text(){ //pega a div var DivText = document.getElementById('text'); //cria uma nova div var DivNovaText = document.createElement('div'); //altera o nome da div DivNovaText.setAttribute("id","DivText"+numero); //coloca no innerHTML da nova div o código html necessário DivNovaText.innerHTML = '<input type=text id=t['+numero+'] name=t['+numero+']><input type=button value=Excluir onclick=deltext(\'DivText'+numero+'\')>'; //adiciona a nova div como filha da divtext DivText.appendChild(DivNovaText); //coloca o cursor na text criada document.getElementById('t['+numero+']').focus(); //incrementa numero++; } //exclui caixa de texto function deltext(div){ var d = document.getElementById('text'); var olddiv = document.getElementById(div); //remove a div d.removeChild(olddiv); } window.onload = function(){ add_text();//cria um campo inicialmente document.getElementById('add').onclick = function(){//quando clicar no botão add_text();//cria com click do botão } } Edited September 25, 2013 at 01:03 PM by carcleo
Carlos Rocha Posted September 25, 2013 at 01:37 PM Author Report #525916 Posted September 25, 2013 at 01:37 PM Tentei fazer uma validação do email por @ mas de qualquyer jeito dá que não tem o arroba. Onde estará o erro? function f(form) { var inputs = document.getElementsByTagName("input"); for (i=0;i<inputs.length;i++) { if (inputs[i].type=='text') { alert (inputs[i].value); if (inputs[i].value=='') { alert('Preencha (ou delete) campo email'); inputs[i].focus(); return false } else if (inputs[i].value.indexOf("@")) { alert('Erro no preenchimento do campo email. Verifique'); inputs[i].focus(); return false } } } }
yoda Posted September 25, 2013 at 01:40 PM Report #525918 Posted September 25, 2013 at 01:40 PM Em primeiro lugar, os atributos no html são formatados da seguinte forma : chave="valor", e não chave=valor. Em relação à validação de email, verificar apenas se tem um @ não chega. Abre a consola e vê se está a dar algum erro no javascript. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Carlos Rocha Posted September 25, 2013 at 02:00 PM Author Report #525921 Posted September 25, 2013 at 02:00 PM Acho que achei erro. Mas, preciso mudar meu código e, para isso, preciso saber quantos campos type=text há no formulario. Não estou encontrando isso. Pode me ajudar? Exemplo: Meu form tem (dinamicamente criados) 'n' inputs texts criados de 0 até n-1. preciso saber essa quantidade usando JavaScipt. Alterei aqui e funcionou. Mas se tiver um jeito de melhorar... function valida_form(form) { var inputs = document.getElementsByTagName("input"); for (i=0;i<inputs.length;i++) { if (inputs[i].type=='text') { atPos = inputs[i].value.indexOf("@",1); periodPos = inputs[i].value.indexOf(".",atPos); if (inputs[i].value == '') { alert('Por favor, qual o e-mail?'); inputs[i].focus(); return false; } else if ( (atPos == -1) || (inputs[i].value.indexOf("@",atPos+1) > -1) || (periodPos == -1) || (periodPos+3 > inputs[i].value.length) ) { alert("Teu e-mail foi digitado incorretamente.\nVerifique se foi digitado com o seguinte padrão:\n email@provedor.fim"); inputs[i].focus(); return false; } } } form.submit(); } Obrigado!
yoda Posted September 25, 2013 at 05:42 PM Report #525973 Posted September 25, 2013 at 05:42 PM Para saberes todos os inputs que queres, adiciona-lhes uma classe primeiro : DivNovaText.innerHTML = '<input type=text id=t['+numero+'] name=t['+numero+']><input type=button class="dynamic-input" value=Excluir onclick=deltext(\'DivText'+numero+'\')>'; Depois : var matches = document.querySelectorAll('.dynamic-input'); for (var i=0;i<matches.length;i++) { /* something */ } before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now