Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

diegobotelho

adicionando text box dinamicos com DOM

Recommended Posts

Olá pessoal,

 

o código abaixo cria campos dinamicamente no form usando DOM, gostaria de saber se alguém sabe como chamar uma função de validação que permita que o usuário digite apenas números nesses campos.

 

Já tentei:

- inputNew.setAttribute("onkeypress",SoNumeros(...)); não funcionou...

- inputNew.setEvent("onkeypress",SoNumeros(...)); não funcionou...

- inputNew.addEventListener("onkeypress", SoNumeros(...), false); não funcionou...

 

Isso é um código que pode ser bastante útil para a comunidade de forma que se pudermos melhorá-lo vai ficar muito interessante.

 

caso alguém consiga colocar isso pra funcionar ficarei eternamente grato! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

segue o pipino... digo o código http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif :

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Untitled Document</title></head><script language=javascript>counter = 1;function removeRow(){  if (counter > 1){  var node		   = document.getElementById("myTable").getElementsByTagName("tbody")[0];  var throwaway_node = document.getElementById("tr" + counter);  node.removeChild(throwaway_node);  counter --;  }}function addRow(){  var tbody	 = document.getElementById("myTable").getElementsByTagName("tbody")[0];  var row	   = document.createElement("tr");  var column1   = document.createElement("td");  var column2   = document.createElement("td");  var inputNew  = document.createElement("input");  var texto	 = document.createTextNode(" Resposta " + (counter + 1));  inputNew.setAttribute("type","text");  inputNew.setAttribute("name","resposta" + (counter + 1));  inputNew.setAttribute("size","55");  inputNew.setAttribute("id","no" + (counter + 1));  column1.setAttribute("colspan","2");  column2.setAttribute("colspan","2");  row.setAttribute("id","tr" + (counter + 1));  column1.appendChild(texto);  column2.appendChild(inputNew);  row.appendChild(column1);  row.appendChild(column2);  tbody.appendChild(row);	  counter++;}</script><body><table width="100%" border="0" cellpadding="0" cellspacing="0" id="myTable"><tr>	<td width="96">Resposta 1:</td>	  <td><input name="titulo" type="text" id="titulo" size="55" maxlength="70"></td></tr><tbody></tbody><tr>  <td><input name="button" type=button onClick="addRow();" value=Adicionar resposta></td>  <td><input name="button2" type=button onClick="removeRow();" value=Remover resposta></td></tr></table></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em qual navegador você está testando?O certo é com addEventListener().. mas não funciona no IE.. para IE, use attachEvent()Qualquer coisa, faça uma busca aqui no fórum por attachEvent ou addEventlistener, ou poste novamente ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, IE não funciona bem com DOM... ja tivesse estes problema e acabei criando uma div e dei um innerHTML nela criando minha tabela e campos de texto tudo por uma string.

 

Quanto à validação para digitar somente números, tem isso:

function fcnOnlyNum(event) {  var k = event.keyCode?event.keyCode:(event.which?event.which:event.charCode);  var caract = new RegExp(/^[0-9]+$/i);  var caract = caract.test(String.fromCharCode(event.keyCode));  if (!caract) {	k=0;	return false;  }  return true;}

Uso:

<input type="text" name="campo" onKeyPress="return fcnOnlyNum(event);" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.