Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando fazer um ajax que irá enviar vários forms de uma página. Mas terei que identificar de qual form estará sendo executado o submit. Para isso estou tentando fazer um DHTML no action de cada form. Mas estou tendo problemas em regatar o formulário que será enviado. Exemplo da tentativa de minha ideia:
<html>
<head> <script type="text/javascript">
function logar(this) { alert(this). }
</script> </head>
<body> <form name="login" method="post" action="javascript:logar(this)">
Login: <input type="text" name="email" class="ipt">
Senha: <input type="password" name="password" class="ipt">
<input type="submit" name="logar" Value="Logar">
</form> </body>
</html> Gostaria de saber se existe algum método que pode fazer esta ideia funcionar?! Grato desde já pela ajuda...Marlon Pacheco, realmente. Mas existe um detalhe crucial. Antes de submeter o form eu me utilizo de uma class javascript que usa o onclick no submit para validar o form. E como o javascript não permite a duplicidade de eventos num mesmo elemento. Minhas alternativas se resume ao DHTM.
Eu poderia até fazer com que a class que validara o form chamasse a class ajax para enviar as informações. Mas eu teria um impasse, pois, o formulário não seria atualizado, ou seja, os campos não ficariam limpos. para isto, até pensei em utilizar o ".reset();" mas percebi que se o usuário quisesse refazer o login por exemplo o email dele não ficaria salvo no auto complete do browser. causando de certa foma um desconforto. Pensei em até utilizar o cookie para resolver isto, mas o código ficaria muito extenso sem necessidade.
Acho que entendi.
Tem como você passar o HTML dos formulários? Só para eu entender a necessidade de fazer o post de 2 forms diferentes.
Marlon Pacheco, é essencialmente, um search, um login e um postar.
<form id="search" name="search" method="post" action="javascript:searsh()">
<input type="text" name="q" placeholder="Pesquisar...">
<input type="image" src="../img/busca.png">
</form>
<form id="login" name="login" method="post" action="javascript:logar();">
<label>Login: <input type="text" name="email"></label>
<label>Senha: <input type="password" name="password"> <input type="submit" name="logar" Value="Logar"></label>
<label><input type="checkbox" name="lembrar" rel="not">Lembrar-me / <span id="recuperar">Recuperar conta.</span></label>
</form>
<form id="poster" name="poster" method="post" enctype="multipart/form-data" action="javascript:postar()">
<label>
Titulo:
<input type="text" name="title" maxlength="70">
</label>
<label>
Palavras-chave:
<input type="text" name="key[]"><input type="text" name="key[]"><input type="text" name="key[]"><input type="text" name="key[]"><input type="text" name="key[]"><input type="text" name="key[]">
</label>
<textarea name="post"></textarea>
<input type="submit" name="postar" Value="Postar">
</form>
Estes três estão utilizando uma class para valida-los que impede um novo evento no butão submit.
Hum.. javascript permite sim inúmeros eventos em um mesmo elemento.
Mas vc tem q fazer da forma correta, q é com .addEventListener e não usar .onclick = ..
Além disso, quando estiver trabalhando com formulários, use sempre o evento de submit do form, e nunca o click do botão enviar.
Muito obrigado William Bruno, problema solucionado.
Buenas tchê.
Primeiro, larga disso de DHTML, isso é coisa dos anos 90. hehehhehe
Você pode usar jQuery? Se sim, aqui tem um exemplo de como você pode fazer isso (http://codepen.io/marlonlp/pen/cofqJ).