Newsgroup: it.comp.lang.javascript
Titolo: form validation

Ciao. Il mio problema consiste nel fatto che nella pagina che restituisce il
risultato di un'interrogazione su un database il numero delle checkbox, una per
ciascun record trovato, è variabile da 1 a 10, qualora l'utente scelga di
visualizzare un massimo di 10 record per pagina. Ho elaborato una soluzione che
funziona salvo nel caso in cui nella pagina sia presente una sola checkbox (sia
relativa al record 1, sia relativa ai record 11, 21, 31, etc. se nelle pagine
precedenti non è stato spuntato alcun record). In questo caso l'alert e quindi
il blocco del submit parte anche con la checkbox correttamente spuntata. Lo
stesso form prevede due submit alternativi, rispettivamente per passare alla
pagina successiva e per visualizzare i record in dettaglio, mentre il tag6000
si riferisce a un hidden che consente di mantenere in memoria i record spuntati
nelle pagine precedenti. Questo è lo script.
function submitFunction(i) {
if (i==1) document.detnex.action="/cgi-bin/wwwi32.exe/[in=ibm/
advanced.in
]";
if (i==2) document.detnex.action="/cgi-bin/wwwi32.exe/[in=ibm/
detail.in
]";
var controllo=false;
var selezione=true;
var tag6000 = document.detnex.tag6000.value;
var tag6030 = document.detnex.tag6030;
if (tag6030[0]) var c=1
if (tag6030[1]) var c=2
if (tag6030[2]) var c=3
if (tag6030[3]) var c=4
if (tag6030[4]) var c=5
if (tag6030[5]) var c=6
if (tag6030[6]) var c=7
if (tag6030[7]) var c=8
if (tag6030[8]) var c=9
if (tag6030[9]) var c=10
for (k=0;k<c;k++)
{
(document.detnex.tag6030[k].checked)?selezione=false:null
}
if (i==1 & selezione & tag6000==1 ^ i==2 & selezione & tag6000==1)
{
controllo=true;
alert("non è stata operata alcuna selezione");
}
if (i==1 & controllo & tag6000==1 ^ i==2 & controllo & tag6000==1){return
false}
document.detnex.submit()
}
Semplificando il form è il seguente.
<form method="post" name="detnex">
<input type="checkbox" name="tag6030" value="id del record">
<input type="hidden" name="tag6000" value="0 o 1 a seconda che sia stata
spuntata o meno una checkbox nella pagina">
<input type="button" value="pagina successiva"
onClick="submitFunction(1)">&nbsp;
<input type="button" value="visualizza selezione" onClick="submitFunction(2)">
</form>
Mi piacerebbe conoscere il motivo del malfunzionamento dello script e
verificare, sempre che la mia soluzione sia accettabile, se sia possibile
adattarlo al caso in cui l'utente scelga l'opzione, pure presente, di
visualizzare contemporaneamente tutti  i record. In questo caso, oltre a essere
variabile, il numero delle checkbox può diventare esorbitante. Quale
alternativa all'eventualità di digitare una sequenza quasi infinita di var?
Grazie e scusate l'eccessiva lunghezza.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 false}
[... snip ...]
Cosa sono "&" e "^" ?
Se intendi AND e OR logico allora dovresti scrivere:
AND --> &&
OR --> ||
E comunque usa meglio le parentesi:
if ((i==1 && selezione && tag6000==1)||(i==2 && selezione && tag6000==1))
(ho tolto un po' di spazi per farci stare tutto su una riga)
Non ho provato ad applicare al tuo script... sappimi dire....
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------