Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com probemas em uma funçao de validaçao de um select,,, o detalhe é o seguinte,, a funçao funciona,, e o alert envia a menssagem para o usuario,, o problema é que quando é clicado em ok na caixa de menssagem o php continua e chama a proxima pagina,, e nao deiva ser assim,, ele devia manter-se naquela pagina para o usuario ser obrigado a escolher uma opçao no select
segue o codigo:
<html>
<script type="text/Javascript">
function valida() {
var comboNome = document.getElementById("trocas");
if (comboNome.options[comboNome.selectedIndex].value == "escolha uma opcao" ){
alert("Selecione um nome antes de prosseguir");
marques.trocas.focus();
return(false);
} else {return(true); }
}
</script>
<center>
<body style="text-align: center">
<form name="marques" method="POST" action="recebetroca.php" onSubmit="return valida()">
<!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
<table border="1" width="32%" cellspacing="1" style="text-align: left; word-spacing: 0; text-indent: 0; line-height: 100%; margin: 0">
<tr>
<td bgcolor="#0066FF" style="text-align: center" colspan="2">
<font size="4" color="#FFFFFF">Formulario de troca de serviço</font></td>
para baixo o codigo segue mas sem problemas....
entao minha duvida é : oque fazer para que o javascript nao permita a execução do action enviando ela para recebetroca.php sem que seja escolhido um nome no select ??? ,,, agora abaixo vou postar o select
select id="trocas" name="trocas" ><option>escolha uma opcao</option>
apos isso ele é preenchido por um while que recebe dados do banco de dados
bom dia,, obrigado por responder,,, porem não entendi como vai ficar a chamada da função ,,,,
no botao submit eu coloco onclick e chama por quem,,, ???
outra coisa,, ao fazer var = checkform = function(form) ,,, esta confuso nao sei se form seria o meu formulario,, e essa variavel checkform fica dentro ou fora da funcao,,, pesso se possivel vc ser mais detalhista e se puder colocar um exemplo de um codigo curto,,,,
eu tentei desta forma,, e nao deu certo
na linha do form fiz assim :
<form name="trokas" method="POST" onsubmit="return checkform(this)" action="recebetroca.php">
na funçao tentei assim:
var checkform = function valida(trokas) {
var trocas = document.getElementById('trokas').trocas;
if(trocas == "escolha uma opcao"){
window.alert("Voce precisa escolher um substituto");
document.trokas.trocas.focus();
return false;
} else {
document.trokas.submit();
}
}
onde trokas é o nome do formulario e trocas é o nome do selectNão coloque o nome do seu form, deixe form no:
var checkform = function valida(form) {
No form:
<form name="formIndex" method="post" onsubmit="return checkForm(this);">
ola,, tentei como vc falou,, mas ta passando direto,, ele executa o action do botao submit ,, a funcao ficou assim da uma olhada...
var checkform = function valide(form) {
var s = document.formIndex.trocas.options[document.formIndex.trocas.selectedIndex].text;
if (s == "escolha uma opcao") {
alert("você precida escolher a funçao");
document.formIndex.trocas.focus();
return false;
} else {
document.formIndex.submit();
}
}
a linha do form ficou assim :
<form name="formIndex" method="post" onsubmit="return checkForm(this)" action="recebetroca.php";>
e o botao no final do formulario que chama a funcao valide ficou assim:
<input type="submit" value="Enviar troca" name="enviar" onclick="return valide(this.value)" >
estou trabalhando nisso agora ,,, estou online até meio dia,,,
otra coisa,, o select que eu estou tentando validar é este :
<select size="1" name="trocas"><option>escolha uma opcao</option>
<?php
while ($todastrocas = mysql_fetch_array($pegapesq))
{ ?>
<option value='<?php echo $todastrocas['postograd'] . (" "). $todastrocas['nomeguerra'];?>'><?php echo $todastrocas['postograd'] . (" "). $todastrocas['nomeguerra']; ?> </option>
<?php
}// fecha o for
?>
</select>amigo, não estou entendendo... vc disse que precisava no form.. mas agora tem no botão?
tem essa função que usei que da submit tbm no onclick:
<script>function envia_tranca() {
document.forms['form1'].submit();
document.forms['form1'].elements['envio'].disabled = true;
}
ou essa:
function OnSubmitForm() {
if (document.form.apn.checked == true) {
document.form.apn.onsubmit;
} else if (document.form.operadora.checked == true) {
document.form.operadora.onsubmit;
} else {
document.form.status.onsubmit;
}
return true;
}entao,,, se nao tiver um onclick no botao,, nada acontece,, passa reto direto para proxima pagina,, e nem chama a funçao,,, é preciso ter um onclick chamando a tal funçao,, vou tentar usar essa que vc postou com onsubmitform ,, porem oque a contece na linha do form,, devo colocar,,,,
<form name="formIndex" method="post" onsubmit="return checkForm(this);">
ola,, consegui resolver o problema da validação fazendo uma mescla das respostas obtidas aqui com outras que consegui pesquisando,,, vou postar aqui e espero que ajude outras pessoas,,, grato,,
a função ficou assim:
function valida() {
var s = document.formfcli.funcao.options[document.formfcli.funcao.selectedIndex].text;
var g = document.formfcli.equipe.options[document.formfcli.equipe.selectedIndex].text;
if (s == "" || s == null || s == "escolha funcao") {
alert("voce precida escolher a funcao");
document.formfcli.funcao.focus();
return false;
} else if (g == "" || g == null || g == "escolha a equipe") {
alert("voce precida escolher a equipe");
document.formfcli.equipe.focus();
return false;
} else {
document.formfcli.submit();
}
}
a chamada deste funçao ficou no botao subimit ,, desta forma:
<input type="submit" value="Buscar equipe" name="voltar" action="iniciotroka.php" onclick="return valida(this.value)" >
e nao precisa nada na linha do form ,,,
Não sou expert, mas comigo funciona assim:
no form coloco :
onsubmit="return checkForm(this);"
Na função:
var checkForm = function(form){
<!-- SUA VALIDAÇÃO -->