Ir para conteúdo

POWERED BY:

Arquivado

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

Yaridovich

Adicionar quebra de linha dentro de função

Recommended Posts

Fala povo,

 

Há um tempo atrás, pedi uma ajuda lá na área de ASP sobre se havia algum jeito de adicionar um botão dentro de um form que, quando clicado, adicionasse um novo campo dentro do form que tivesse atributos e pudesse ser resgatado (usando request.form) quando o form fosse enviado. Me mostraram uma função que faz isso, só não me disseram como eu faria pra resgatar os valores dos novos campos, mas eu consegui descobrir sozinho.

 

Mas tem um pequeno detalhe (que é importante pro que eu tô tentando fazer) que eu ainda não consegui fazer.

 

Vou mostrar em screenshots como a função está atuando no momento:

 

Imagem Postada

Ao clicar no botão "Adicionar campo" uma vez:

 

Imagem Postada

E ao clicar uma segunda vez:

 

Imagem Postada

E isso segue a cada vez que o botão é clicado.

 

Como podem ver, a função está funcionando quase perfeitamente. O problema é, cada campo instanciado está sendo incluido sem quebra de linhas e sem espaços, um exatamente do lado do outro. E eu precisava que cada campo ficasse um abaixo do outro e que houvesse um espaço entre o label do campo (no exemplo, os labels são "URL1" e "URL2") e o campo em si. Alguém saberia dizer como eu poderia fazer isso?

 

Seguem os códigos usados:

 

teste.htm

<html>

<head>
	<title>Teste</title>
	<script language="javascript" src="teste.js"></script>
</head>

<body>
	<form name="teste" id="teste" method="post" action="teste.asp">
		<input type="button" name="btnAdd" id="btnAdd" value="Adicionar campo">
		<br><br>
		<input type="submit" name="btnSubmit" id="btnSubmit" value="Enviar">
	</form>
</body>

</html>

teste.asp

<%@ Language=VBScript %>

<script language='javascript'></script>

<%

valor=1
check=true

Do while check
	if (NOT(isEmpty(request.form("url"&valor)) or isNull(request.form("url"&valor)))) then
		response.write request.form("url"&valor) & "<br>"
		valor=valor+1
	else
		check=false
	end if
Loop

%>

teste.js

/*
 * 
 * Como usar:
 *              todo o script se baseia nos parâmetros, logo você só terá que defini-los. Sâo eles:
 *                      formID » valor do tipe ID que recebe o formulário
 *                      buttonAdd » valor do tipo ID que recebe o botão para adicionar;
 *                      textLabel » valor do tipo STRING que especifíca o texto que aparecerá no label
 */

window.onload = function() {
	addRemoveInput("teste", "btnAdd", "URL");
};

function addRemoveInput(formId, buttonAdd, textLabel) {
	var form = document.getElementById(formId);
	var btnAdd = document.getElementById(buttonAdd);
	var inputs = 0;
	var labels = document.getElementsByTagName("label");

	btnAdd.onclick = addInput;

	function addInput() {
		++inputs;

		var label = document.createElement("label");
		var input = document.createElement("input");

		label.innerHTML = textLabel + inputs;
		input.setAttribute("type", "text");
		input.setAttribute("id", "url"+inputs);
		input.setAttribute("name", "url"+inputs);
		
		label.appendChild(input);
		form.appendChild(label);
	}
}

Desde já, agradeço.

 

Abração!

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o <br/> ou cria um textNode para dar um espaço entre os campos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o <br/> ou cria um textNode para dar um espaço entre os campos...

 

Já tentei usar o <br/> mas não funcionou, mas ainda não tentei com esse TextNode, vou dar uma pesquisada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, pq você não usa jQuery pra fazer isso. É mil vezes mais simples do que você esta fazendo.

 

No jquery só dar um "...after('<input> <br />');"

 

Qq coisa da um toque se não souber jQuery.

 

Abcs

 

Tô dando um toque então, não sei jQuery :lol:

 

Essa ajuda que tô pedindo é pra um sistema que eu desenvolvi lá no meu estágio, já fiz bastante coisa, mas é a primeira vez que eu tô realmente mexendo com programação, antes disso só tinha feito coisas pequenas nas aulas da faculdade. É a primeira vez que tô "colocando a mão na massa", saca?

 

Valeu a ajuda desde já a todos. =)

 

Desculpa ressucitar o tópico, mas ainda tô precisando de ajuda e o Franklin não respondeu minha MP...

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.