validar javascript

RicAlmeida

Power Member
boas,

estou com um pequeno problema nas minha validaçoes

Este e o meu formulario
Código:
[B]<form onSubmit="[U]return[/U] valida_subtipo([U]this[/U].form)" name="s" method="post" action="up_subtipo.php">[/B]
  [B]<table width="300" border="0" cellspacing="0" cellpadding="0">[/B]
    [B]<tr>[/B]
      [B]<td colspan="2">[/B][B]<span [U]class[/U]="style15">[/B].: Novo Sub-Tipo :.[B]</span>[/B][B]</td>[/B]
    [B]</tr>[/B]
    [B]<tr>[/B]
      [B]<td>[/B][B]<span [U]class[/U]="style16">[/B]Sub-Tipo:(*)[B]</span>[/B][B]</td>[/B]
      [B]<td>[/B][B]<input type="text" name="subtipo" size="30" maxlength="50" />[/B]
      [B]</td>[/B]
    [B]</tr>[/B]
    [B]<tr>[/B]
      [B]<td>[/B](*) Campos Obrigatorios[B]</td>[/B][B]<td>[/B][B]<input type="submit" value="guardar"/>[/B][B]</td>[/B]
    [B]</tr>[/B]
  [B]</table>[/B]
[B]</form>[/B]

Isto sao as validações em javascript
Código:
[U]function[/U] valida_subtipo(s){
[U]if[/U] (s.subtipo.value==""){
	s.subtipo.focus();
	alert("O Campo Sub-Tipo Encontra-se Vazio");
	s.subtipo.style.backgroundColor='#FF0000';
	[U]return[/U] [U]false[/U];
}
}

o problema e que mesmo que deixe em branco ele guarda na base de dados. Este e o formulario mais pequeno, mas em todos os outro utilizio o mesmo esquema mas não da, acontece o mesmo.

cumps
 
Não envies o this.form

Tenta alterar isto:

Código:
onSubmit="return valida_subtipo(this.form)"

para isto:

Código:
onSubmit="return valida_subtipo(this)"
 
Faz assim:

HTML
Código:
<form onSubmit="return valida_subtipo();" name="s" method="post" action="up_subtipo.php">
  <table width="300" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td colspan="2"><span class="style15">.: Novo Sub-Tipo :.</span></td>
    </tr>
    <tr>
      <td><span class="style16">Sub-Tipo:(*)</span></td>
      <td><input type="text" name="subtipo" size="30" maxlength="50" />
      </td>
    </tr>
    <tr>
      <td>(*) Campos Obrigatorios</td><td><input type="submit" value="guardar"/></td>
    </tr>
  </table>
</form>

JS
Código:
function valida_subtipo(){
var objForm = document.s;
var sError = '';
if (objForm.subtipo.value=='') sError+='Sub-Tipo\n';
if (sError!=''){
alert('O campo ' + sError + ' encontra-se vazio');return false;}
return true;}
 
Última edição:
Não pode... eu tenho isso a funcionar... onde é que tás a meter o JS? Tens num ficheiro à parte e estás a chamar bem esse ficheiro, ou tens no ficheiro html?
 
alterei isso. mas continua na mesma

Isto não funciona contigo?

PHP:
<html>
  <head>
    <script type="text/javascript">
      function valida_subtipo(s){
        if (s.subtipo.value==""){
          s.subtipo.focus();
          alert("O Campo Sub-Tipo Encontra-se Vazio");
          s.subtipo.style.backgroundColor='#FF0000';
          return false;
        }
      }
    </script>
  </head>
  
  <body>
    <form onSubmit="return valida_subtipo(this)" name="s" method="post" action="up_subtipo.php">
      <table width="300" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td colspan="2"><span class="style15">.: Novo Sub-Tipo :.</span></td>
        </tr>
        <tr>
          <td><span class="style16">Sub-Tipo:(*)</span></td>
          <td><input type="text" name="subtipo" size="30" maxlength="50" />
          </td>
        </tr>
        <tr>
          <td>(*) Campos Obrigatorios</td><td><input type="submit" value="guardar"/></td>
        </tr>
      </table>
    </form>
  </body>
</html>
 
o JS esta no index.php. o formulario e uma esta dentro de um funçao que e chamado do ficheiro config.php

Consegues falar português?
Ou metes o JS num ficheiro à parte e chama-lo dentro do ficheiro config.php, ou metes o JS no ficheiro config.php, senão quando chamas a função ele não sabe onde a ir buscar... Estou a admitir que os ficheiros são individuais e não têm qualquer relação entre eles, foi o que consegui decifrar da tua resposta.
 
Última edição:
Consegues falar português?
Ou metes o JS num ficheiro à parte e chama-lo dentro do ficheiro config.php, ou metes o JS no ficheiro config.php, senão quando chamas a função ele não sabe onde a ir buscar... Estou a admitir que os ficheiros são individuais e não têm qualquer relação entre eles, foi o que consegui decifrar da tua resposta.

sorry, nem reparei no que tinha escrito
o JS esta no index.php. o formulario e uma função que esta dentro do config.php.


mas eu a meter o JS no index.php.. depois quando ele chama a função ele nao consegue ir ao index.php buscar o JavaScript?
 
Última edição:
Não... então se o config.php é completamente separado do index.php e se estás a chamar a função no config.php, como é que queres que ele vá buscar a função ao index? Ele não é bruxo :p
 
Que confusão... olha porque não metes as funções JS num ficheiro .js e chamas o ficheiro onde ele é necessário? Ficas com os ficheiros php mais limpos e sem confusões de códigos.
 
Back
Topo