Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal , tenho esse seguinte trecho de código , preciso que o formulário não seja enviado se todos os campos não estiverem preenchidos !! Quando eu preencho o select e o primeiro input ele envia o formulário sem validar o segundo input .. Porque ??
Obrigado desde já
function validar() {
var sel = form1.sel.value;
var ementa = form1.ementa.value;
var objetivo = form1.objetivo.value;
if (sel == "") {
alert('Selecione uma DISCIPLINA ');
form1.sel.focus();
return false;
}
if (ementa == "") {
alert('Preencha o campo EMENTA ');
form1.ementa.focus();
return false;
}
if (objetivo == "") {
alert('Preencha o campo OBJETIVO ');
form1.email.focus();
return false;
}
}
</script>
<form name="form1" action="gravarementa.php" method="post" >
Selecione a Disciplina
<select id="sel-teste" name="sel">
<option value="">Disciplinas Atuais</option><?php
while ($lista = mysql_fetch_array($res)) {
if ($aux == $lista['periodo']) {
$id = $lista['cod_disciplina'];
$nome = $lista['descricao'];
$combo = "<option value=\"$id\">$nome</option>";
}
echo $combo;
}
?>
</select>
<br>
<br>
Ementa<br>
<input type="text" name="ementa"><br>
Objetivo<br>
<input type="text" name="objetivo"><br>
<input type="submit" onclick="return validar()">
</form>Fiz como você recomendou mas continuo com o mesmo problema ... Se eu deixar o campo "objetivo" sem preencher o formulario é enviado ainda ..
Exibe o alert e envia?
Sim fala que precisa preencher o campo mas mesmo assim envia
Posta como ficou seu código.
<script language="javascript" type="text/javascript">
function validar() {
var sel = form1.sel.value;
var ementa = form1.ementa.value;
var objetivo = form1.objetivo.value;
if (sel == "") {
alert('Selecione uma DISCIPLINA ');
form1.sel.focus();
return false;
}
if (ementa == "") {
alert('Preencha o campo EMENTA ');
form1.ementa.focus();
return false;
}
if (objetivo == "") {
alert('Preencha o campo OBJETIVO ');
form1.email.focus();
return false;
}
}
</script>
<form name="form1" action="gravarementa.php" method="post" onsubmit="return validar()">
Selecione a Disciplina
<select id="sel-teste" name="sel">
<option value="">Disciplinas Atuais</option><?php
while ($lista = mysql_fetch_array($res)) {
if ($aux == $lista['periodo']) {
$id = $lista['cod_disciplina'];
$nome = $lista['descricao'];
$combo = "<option value=\"$id\">$nome</option>";
}
echo $combo;
}
?>
</select>
<br>
Ementa<br>
<input type="text" name="ementa"><br>
Objetivo<br>
<input type="text" name="objetivo"><br>
<input type="submit" />
</form>Troque:
form1.email.focus();
Por:
form1.objetivo.focus();
Pelo fato do name estar errado, ele deveria estar saindo da função, não sei ao certo, mas aqui funcionou.
Muito obrigado funcionou direitinho !!! Eu tinha outros campos que apaguei por isso acabei confundindo tudo !! Pura falta de atenção .. Obrigado denovo
Você deve utilizar o onsubmit no form, não o onclick no submit.
Troque:
<input type="submit" onclick="return validar()">
Por:
<input type="submit" />
E troque:
<form name="form1" action="gravarementa.php" method="post" >
Por:
<form name="form1" action="gravarementa.php" method="post" onsubmit="return validar()">