JoaoNascimento Posted February 18, 2014 at 12:39 PM Report #545671 Posted February 18, 2014 at 12:39 PM Boa tarde a todos, não sou especialista em javascript, só vou fazendo as coisas a medida das minhas necessidades, mas desta vez esta aqui um bico de obra. Estou, para um cliente a fazer um formulário que deve permitir copiar valores de caixas de texto mediante uma ordem. Depois de alguma pesquisa cheguei ao seguinte código para copiar: <script type="text/javascript"> vetorCopiar = new Array(); function copiar() { formulario = document.getElementById("preferencias"); copiar = document.getElementById("copiar").value; alert("Entrei"); var inputs = document.getElementsByTagName("input"); var j = 0; for (var i = 0; i < inputs.length; i++) { if(inputs[i].name.indexOf(copiar+'_') == 0) { //copiar[i] = inputs[i].name.indexOf(copiar+'_').value; vetorCopiar[j] = inputs[i].value; j++; } } } function colar() { colar = document.getElementById("colar").value; var inputs = document.getElementsByTagName("input"); var j = 0; for (var i = 0; i < inputs.length; i++) { if(inputs[i].name.indexOf(colar+'_') == 0) { // document.getElementById(inputs[i].name).value=vetorCopiar[j]; //alert(document.getElementById(inputs[i].name).value); //alert(vetorCopiar[j]); j++; } } document.getElementById("copiar").value = ""; document.getElementById("colar").value = ""; } </script> E já consigo copiar UMA vez os valores de um conjunto de inputs para outro conjunto, o problema é quando tempo fazer uma segunda vez isso no mesmo formulário não me permite! O que poderei fazer? Alguma ajuda? http://www.joaonascimento.info
taviroquai Posted February 18, 2014 at 08:35 PM Report #545719 Posted February 18, 2014 at 08:35 PM (edited) Viva João, Não estás a fazer instruções redundantes? Suponho que precises mesmo guardar os valores dos inputs em memória porque não tens acesso aos inputs copiar quando executas o colar certo? Exemplo básico: <div id="isto-vai-desaparecer-da-dom"> <input name="copiar_1" value="valor1" /> <input name="copiar_2" value="valor2" /> </div> <input name="colar_1" value="valor1" /> <input name="colar_2" value="valor2" /> var buffer = {}; function copiar() { buffer = {}; var inputs = document.getElementsByTagName("input"); for (var i = 0; i < inputs.length; i++) { if (inputs[i].name.indexOf(copiar+'_') == 0) { buffer[inputs[i].name] = inputs[i].value; } } } function colar () { var inputs = document.getElementsByTagName("input"); for (var i = 0; i < inputs.length; i++) { if (inputs[i].name.indexOf(colar+'_') == 0) { inputs[i].value = buffer[inputs[i].name]; } } } Fiz á mão, testa aí e vê se funca... Agora à la Javascript... é por estas coisas que cada vez mais de utilizam Models em Javascript... dá uma olhada em Frameworks JS... dá mais trabalho mas o código fica melhor organizado... Edited February 18, 2014 at 08:40 PM by taviroquai
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