Ir para conteúdo

POWERED BY:

Arquivado

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

pjcs

[Resolvido] Executar onSubmit e passar POST

Recommended Posts

Boas pessoal, estou encalhado e não consigo passar daqui!

 

é o seguinte eu tenho um formulário que aparece na pagina por AJAX. e ao submeter tem de abrir a pagina seguinte passando os campos POST.

 

o problema é que a função de AJAX para mudar para a proxima pagina não pode estar no action (penso eu), e se eu meter a função no onSubmit ele não envia os campos por POST.

 

 

podem-me ajudar?

 

<form name="form1" onsubmit="javascript: nextPage(); return false;" action="#" method="post">

<input type="button" value="submit" onclick="form1.onsubmit();"/>

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

não existe maneira mais rapida e com menos codigo de juntar os campos todos do form para uma variavel em javascript? algo do tipo serialize (do php)

 

é que o formulário é... gigante!

Compartilhar este post


Link para o post
Compartilhar em outros sites

?

 

apenas 3 funções, 1 para os inputs, outra para os selects, e outra para os textareas..

tem como otimizar um pouco ali.. mas não chega a 30 linhas...

 

não conheço nenhuma função nativa javascript que faça isso.

O plugin jQuery, tem o método .serialize(), mas dai pegar um baita plugin de 70kb+, por causa de uma função, e achar que 30~35 linhas é muito.. é bem estranho.

 

simples modificação:

<html>
<head>
<script type="text/javascript">
function serialize( form_ajax, elemento ){
	var form = document.getElementById( form_ajax );
	var campos = form.getElementsByTagName( elemento );
	
	var dados = '';
	for( var i=0; i<campos.length; i++ ){
			dados += campos[i].name+'='+campos[i].value+'&';
	}
	return dados;
}
function form2Qs( form )
{
	return serialize( form, 'input' )+serialize( form, 'select' )+serialize( form, 'textarea' );
}
window.onload = function(){
	alert( form2Qs('teste') );
}
</script>
</head>
<body>
	<form action="" method="post" id="teste">
		<input type="text" name="inicial" value="12.50" /><input type="text" name="final" value="500" />
		<input type="text" name="inicial2" value="15" /><input type="text" name="final2" value="50" />
		<select name="tal"><option value="2">2</option><option value="23" selected="selected">23</option></select>
		<select name="tal2"><option value="4">4</option><option value="5" selected="selected">5</option></select>
		<textarea name="textarea">Valor conteudo</textarea>
	</form>
</body>
</html>
bastava você ler o post que enviei, e tentar fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quer usar menos código ainda?

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://forum.imaster...ulacao-de-ajax/

 

Para enviar o seu form faça:

document.getElementById('id do form').onsubmit = function(e){
	//Previne o envio do form...
 	e = e || window.event;
 	e.preventDefault();
 	
 	//Coloque a url na qual o form deve ser processado no atributo action do form, é importante que o script não seja obstrusivo, se não tem js, envia do msm jeito
 	var action = this.getAttribute('action');
 	
 	//Use a função sugerida pelo W. Bruno
 	var data = serialize(this, 'input');
 	data += serialize(this, 'textarea');
 	data += serialize(this, 'select');

 	//Depois de salvar e incluir o script que sugeri, faça:
 	var ajax = new myAjax();
 	ajax.post(action);
}

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.