|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2003
Città: Cavezzo (MO)
Messaggi: 1923
|
funcioncina JavaScript: strano comportamento
Ho la seguente funzione javascript:
<script type="text/javascript"> function invertSel(item) { alert(item.length); for (var i=0; i<item.length; i++) { if (item[i].type=='checkbox') { if (item[i].checked==true) item[i].checked=false; else item[i].checked=true; } } } </script> associata ad un evento onclick di una checkbox e il cui semplice compito è quello di invertirmi le selezioni di alcuni checkbox sottostanti. La cosa strana è che se ho ALMENO 2 checkbox la funzione viene eseguita correttamente e fa il suo dovere, se invece ho un solo checkbox, la funzione non viene eseguita. allora ho provato a mettere alert(item.length) e con mia sorpresa ho notato che con 2 o + checkbox mi viene stampato a video il valore esatto di checkbox presenti (quindi 2 o +), se invece ne ho solamente una mi viene stampato a viedo un UNDEFINED. Qualcuno mi sa spiegare il motivo di questa cosa? Davide
__________________
[size="1"]Case: NZXT Phantom 820 White Ali: Seagate PRIME-TX-1300 TITANIUM CPU: Ryzen 7 5800X3D Dissi: CORSAIR Hidro H150i PRO XT MB: ASUS X570-F Strix RAM: 4x16GB CORSAIR VENGEANCE 3600 CL16 Video: MSI RTX 4080 Suprim X Cuffie: Audio-Technica ADG1X HD: Sabrent M.2 PCIe 4 512GB - 1 TB Sabrent M.2 - Seagate Barracuda 2TB Monitor1: LG 27GP850-B Monitor2: ASUS VG279QM Mouse: Razer Deathadder V2 Tastiera: Corsair K70 RGP PRO UPS: APC Smart-UPS 1000 VA SMT1000I |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Feb 2003
Città: Cavezzo (MO)
Messaggi: 1923
|
Quote:
Eccoti la chiamata: <input type="checkbox" name="invertSelection" id="mainCheckbox" value="" onclick="invertSel(this.form.article)">Inverti la selezione</input> Le checkbox sottostanti (quelle per intenderci che dovrebbero venire selezionate) le creo all'interno di un ciclo while in questo modo: while (it.hasNext()) { fields = (String[]) it.next(); %> <table width="95%" border="2" bgcolor="#<% out.print(bgColor); %>"> <tr> <td width="10%" rowspan="5" align="center"> <input type="checkbox" name="article" id="<%out.print(fields[0]);%>" value="<%out.print(fields[0]);%>"/> </td> Come vedi, quando li creo gli assegno come name "article" (dovrebbe andare bene giusto?) La cosa che mi fa strano è che con un solo articolo non va, mi ritorna UNDEFINED, con due o più funziona benissimo grazie per l'aiuto Davide
__________________
[size="1"]Case: NZXT Phantom 820 White Ali: Seagate PRIME-TX-1300 TITANIUM CPU: Ryzen 7 5800X3D Dissi: CORSAIR Hidro H150i PRO XT MB: ASUS X570-F Strix RAM: 4x16GB CORSAIR VENGEANCE 3600 CL16 Video: MSI RTX 4080 Suprim X Cuffie: Audio-Technica ADG1X HD: Sabrent M.2 PCIe 4 512GB - 1 TB Sabrent M.2 - Seagate Barracuda 2TB Monitor1: LG 27GP850-B Monitor2: ASUS VG279QM Mouse: Razer Deathadder V2 Tastiera: Corsair K70 RGP PRO UPS: APC Smart-UPS 1000 VA SMT1000I |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
Codice:
<input type="checkbox" name="invertSelection" id="mainCheckbox" value="" onclick="invertSel(this.form.article)">Inverti la selezione</input> Codice:
onclick="invertSel(this.form)" |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Feb 2003
Città: Cavezzo (MO)
Messaggi: 1923
|
Quote:
Davide
__________________
[size="1"]Case: NZXT Phantom 820 White Ali: Seagate PRIME-TX-1300 TITANIUM CPU: Ryzen 7 5800X3D Dissi: CORSAIR Hidro H150i PRO XT MB: ASUS X570-F Strix RAM: 4x16GB CORSAIR VENGEANCE 3600 CL16 Video: MSI RTX 4080 Suprim X Cuffie: Audio-Technica ADG1X HD: Sabrent M.2 PCIe 4 512GB - 1 TB Sabrent M.2 - Seagate Barracuda 2TB Monitor1: LG 27GP850-B Monitor2: ASUS VG279QM Mouse: Razer Deathadder V2 Tastiera: Corsair K70 RGP PRO UPS: APC Smart-UPS 1000 VA SMT1000I |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:57.