HighDots Forums  

ciclo for

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss ciclo for in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
luca72
 
Posts: n/a

Default ciclo for - 06-26-2008 , 12:12 PM






Ciao Premetto che uso pochissimi il js, ho fatto questo:

function Valida(){
var cam = ["ris_p", "ris_s", "ris_t", "ris_q" ]
var lung = cam.length
for (var i==0; i==lung; i++){
var a = document.getElementById(cam[i]).value
if (a.length == 0 ){
alert('Pirla compila tutti i campi')
break
}
}
}

Non mi cicla; se al posto di cam[i] ci metto cam[1] almeno il valore
me lo legge.
Vorrei mettergli un else dove le dico che se tutti i campi sono
compilati allora può andare avanti, mi date una dritta

Saluti

Luca

Reply With Quote
  #2  
Old   
luca72
 
Posts: n/a

Default Re: ciclo for - 06-26-2008 , 12:27 PM






Per la prima parte mi rispondo da solo:

function Valida(){
var cam = ["ris_p", "ris_s", "ris_t", "ris_q" ]
var lung = cam.length
for (var i=0; i<=lung; i++){
var a = document.getElementById(cam[i]).value
if (a == 0 ){
alert('Pirla compila tutti i campi')
break
}
}
}
Non riesco a capire perchè se metto
var a = document.getElementById(cam[i]).value
if (a == 0 ){
alert('Pirla compila tutti i campi')
break


Reply With Quote
  #3  
Old   
luca72
 
Posts: n/a

Default Re: ciclo for - 06-26-2008 , 12:30 PM



Per la prima parte mi rispondo da solo:

function Valida(){
var cam = ["ris_p", "ris_s", "ris_t", "ris_q" ]
var lung = cam.length
for (var i=0; i<=lung; i++){
var a = document.getElementById(cam[i]).value
if (a.length == 0 ){
alert('Pirla compila tutti i campi')
break
}
}
}
Non riesco a capire perchè se metto
var a = document.getElementById(cam[i]).length
if (a == 0 ){
alert('Pirla compila tutti i campi')
break
non funziona.

Però mi date un aiuto sull'else che vi ho chiesto prima.

Ciao Luca


Reply With Quote
  #4  
Old   
ZER0
 
Posts: n/a

Default Re: ciclo for - 06-26-2008 , 01:54 PM



luca72 <lucaberto (AT) libero (DOT) it> wrote:

Quote:
Per la prima parte mi rispondo da solo:

function Valida(){
var cam = ["ris_p", "ris_s", "ris_t", "ris_q" ]
var lung = cam.length
for (var i=0; i<=lung; i++){
Però ti sei risposto male.
Hai un array di quattro elementi, quindi con length pari a 4, i cui
indici sono 0, 1, 2 e 3. Con la condizione che hai impostato, vai a
scorrere 5 elementi, fino all'indice 4 che non esiste.
Il codice corretto è senza il segno di uguaglianza:

for (var i = 0; i < lung; i++ ){

Quote:
Non riesco a capire perchè se metto
var a = document.getElementById(cam[i]).length
if (a == 0 ){
alert('Pirla compila tutti i campi')
break
non funziona.
indici sono 0, 1, 2 e 3. Con la condizione che hai impostato, vai a

Premesso che "cam" contenga gli ID e non i NAME, di eventuali campi
input, e che siano univoci (gli ID devono esserlo, i NAME no); stai
probabilmente cercando di recuperare la length dei valori contenuti
in tali campi... In tal caso, devi passare dalla proprietà "value",
dato "document.getElementById()" ti restituisce un oggetto:

var a = document.getElementById(cam[i]).value;
alert(a.length);

Quote:
Però mi date un aiuto sull'else che vi ho chiesto prima.
In verità l'else non è necessario. Basta che al posto di un "break"
tu metta un "return false":


function Valida(){

for ( bla bla bla ){
if ( no compilato )
return false;
}

return true;

}

In questo modo, se la funzione non riscontra eccezioni ti ritornerà
"true" altrimenti "false".

N.B.
Di solito con i campi input è più comodo racchiuderli in una form e
usare il name, riferendosi alla collection "document.forms", e alla
"elements". Esempio:

function dumpElement( el ) {
alert( "ID: "+el.id+"\r\n"+
"Name: "+el.name+"\r\n"+
"Type: "+el.type );
}

var els = document.forms[0].elements, ln = els.length;

for (var i=0;i<ln;i++){
dumpElement(els[i]);
}
--
"Se c'è qualcosa di più importante del mio ego su questa nave,
la voglio catturata e fucilata."


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.