Ir para conteúdo

POWERED BY:

Arquivado

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

abelvicente

validaçao de um select com javascript

Recommended Posts

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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 -->
 
return false;
 
}


Compartilhar este post


Link para o post
Compartilhar em outros sites

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 select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nã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);">

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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);">

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ,,,

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.