Newsgroup: it.comp.lang.javascript
Titolo: Aiuto onClick

Salve a tutti sono nuovo di questo newsgroup e avrei un problema da
sottoprovi.
Ho creato una function (decidi())che al suo interno richiama a sua
volta una function(check_form_02()).
La funzione decidi() indica quale è la pagina successiva.
La funzione check_form_02() controlla se i campi sono valorizzati.
Sull'onClick del botton nell'unica form che ho faccio eseguire
decidi().
di seguito il pezzo di codice:
<script language=javascript src=form_02.js >
</script>
<script>
// script decisione avanti-indietro
function decidi(decisione){
  if(decisione=='I'){
     form_02.passo.value='u';
     form_02.submit();
  }else{
     if (check_form_02(this)){
        form_02.passo.value='2';
        form_02.submit();
     }
}
</script>
...
...
    <td align="right">
      <input type="button" value="Avanti >>" name="avanti"
onClick="decidi('A')">
       <input type="hidden"  name="passo">
    </td>
  </tr>
...
questa invece è la function check_form_02 che richiamo:
function check_form_02 (theElement)
{
if (theElement.PRAT_INDIRIZZO_RES.value == '')
   {
    alert('ATTENZIONE: Campo Indirizzo di Residenza non Valorizzato');
    return false;
   }
else
theElement.PRAT_INDIRIZZO_RES.value=theElement.PRAT_INDIRIZZO_RES.value.toUpperCase();
Il problema è che quando non inserisco valori nel campo indirizzo e
clicco sul bottone mi va in errore dicendo che:
"PRAT_INDIRIZZO_RES.value is null or not an object."
Mi aspetterei che mi venisse fuori il messaggio di alert invcece.
Cosa sbaglio???

 function check_form_02 (theElement)
(anche se il nome "theElement" è un po' fuorviante, vedendo il codice
sembrerebbe proprio essere la form).
Passa "this" come secondo parametro dell'onclick, e poi passa il
riferimento corretto alla check_form_02.
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

Innanzitutto grazie per la risposta.
Perchè il maledetto script di controllo form funziona benissimo se
<form name="form_01" action="<?php echo $_SERVER ["PHP_SELF"] ?>"
method="post"
 onsubmit="return check_form_01(this);">
...
       <input type="submit" value="Avanti >>" name="submit">
ma non ne vuole sapere se lo
uso sull'Onclick del bottone
 <input type="button" value="Avanti >>" name="avanti" onClick="return
check_form_02(this)">
Come dici tu io passo tutta la form ma poi controllo i singoli elementi
per vedere se sono valorizzati.
Nella funzione avevo riportato solo un singolo campo per comodità.

 check_form_02(this)">
il perché non lo so, ma esiste onsubmit apposta ...
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

 check_form_02(this)">
Perché nei due casi "this" assume valore diverso. Nel primo č la form, nel
secondo č il pulsante.
Per farlo funzionare nel secondo caso, dovresti fare:
	onclick="return check_form_02(this.form)"
premesso che il pulsante si trovi dentro la form che ti interessa validare.
-- 
~ "Viviamo dei vuoti lasciati da qualcun'altro."

Grazie per la spiegazione, come avrete capito è da poco che utilizzo
php e js.
Ok funziona se, come dici tu uso:
onclick="return check_form_02(this.form)"
il problema che io sull'onclick devo richiamare la funzione decidi('A')
che al suo interno fa la validazione della form.
// script decisione avanti-indietro
function decidi(decisione){
  if(decisione=='I'){
     form_02.passo.value='u';
     form_02.submit();
  }else{
     if (check_form_02(this.form)){
        form_02.passo.value='2';
        form_02.submit(); 
     } 
}

      if (check_form_02(this.form)){
 if(check_form_02(Frm)) {
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

Ti ringrazio, avevo provato a passarlo come secondo parametro ma
passavo sempre "this" invece di "this.form".
Grazie a te funziona.