Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como fazer funcionar a validação de um formulário (jquery), sendo que ele é chamado a outra pagina com ajax?
FORMULARIO:
<form id="form_sms" name="form_sms" method="post" action="sms_enviar.php" />
<p>Envio de SMS</p>
<?php
foreach( $a as $id_contato ){
$sqlCont = "SELECT * FROM contato WHERE idContato = $id_contato ";
mysql_set_charset('utf8');
$dataCont = mysql_fetch_assoc(mysql_query($sqlCont));
echo '<label>'.$dataCont['nmContato'].'</label>
<input type="text" name="txtcont" id="txtcont'.$dataCont['idContato'].'" value='.$dataCont['celContato'].' readonly><br>';
}
?>
<textarea name="txtmsg" id="txtmsg" placeholder="Mensagem"></textarea>
<input class="btn" type="submit" name="btnenviar" id="btnenviar" value="ENVIAR"/>
<input class="btn" type="reset" name="btnlimpar" id="btnlimpar" value="LIMPAR"/>
</form>
VALIDAÇÃO:
<script src="JqueryValidate/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="JqueryValidate/jquery.validate.js" type="text/javascript"></script>
<SCRIPT>
$(document).ready(function(){
$("#form_sms").validate({
rules:{ txtmsg:"required", },
messages:{ txtmsg:"Escreva o texto.",},
});
});
</SCRIPT>Essa sua validação é a página sms_enviar.php ou está na mesma página do formulario? Qual delas é ajax?
O formulario está sendo chamado para outra página com ajax. O código segue abaixo:
$.ajax({
url:'recebecontatos.php',
type:'POST',
data:'valor=' + val,
success: function(data){
$('#exibe').html(data);
}
});
Tentei colocar a validação na pagina do formulario, depois tentei colocar na pagina que faz a requisição e em nenhuma das duas vezes funcionou.
William Bruno, tentei trocar o método html() pelo load() e adicionar o script de validação.
$.ajax({
url:'recebecontatos.php',
type:'POST',
data:'valor=' + val,
success: function(data){
//$('.exibe').slideDown();
$('#exibe').load(data);
$("#form_sms").validate({
rules:{ txtmsg:"required", },
messages:{ txtmsg:"Escreva o texto.",}
});
}
});
Não funcionou. Se não for muito incomodo, poderia me explicar melhor o exemplo do seu site?
esquece o .load(), ele faz a mesma coisa q o $.ajax.
ou vc usa um, ou usa outro.
O formulario, neste caso, não ta nem submetendo.. :/
tenta assim:
$.ajax({
url:'recebecontatos.php',
type:'POST',
data:'valor=' + val,
success: function(data){
$('#exibe').html(data);
$("#form_sms").validate({
rules: { txtmsg:"required" },
messages: { txtmsg:"Escreva o texto." },
submitHandler: function(form){
alert('Formulario enviado!');
}
});
}
});Caso não funcione, confira o console de erros, apertando Ctrt + Shift + J no Firefox
Questão resolvida! Obrigada!
leia:
http://wbruno.com.br/ajax/usando-lightbox-em-pagina-carregada-ajax/