webForumDet fria alternativet

Varför funkar bara översta if-satserna?

JavaScript

1 svar · 375 visningar · startad av tovelainen

Medlem sedan mars 2003137 inlägg
Frågan#1

Hej
jag försöker göra en funktion som skickar ett värde på checkboxar både om de är checked eller inte.
Jag måste alltså få iväg ett true eller false för varje checkbox varje gång nån klickar submit.

Jag gör det genom att låta besökaren klicka i en kvasi-box som skickar sitt värde upp till javascriptet som i sin tur slussar med värdet via ett hidden field med det egentliga variabelnamnet.

Jag får det att funka med den översta checkboxen bara och jag FATTAR INTE VARFÖR!
Om jag alltså sätter en kråka i Apple1-boxen så skickas värdet true (typ) med "Apple". Samma om jag INTE checkat Apple1. Då skickas false.
Dvs så långt funkar det fint.

Men sen funkar det inte med checkboxarna under. Varför?
"Desperat"

<html>
<body>
<script type="text/javascript" language="javascript">
<!--
function box_update(){
if(document.subscribeForm.Apple1.checked){document.subscribeForm.Apple.value=true;}
if(document.subscribeForm.Apple1.checked==false){document.subscribeForm.Apple.value=false;} 
if(document.subscribeForm.Server_Lagring1.checked){document.subscribeForm.Server_Lagring.value=true;}
if(document.subscribeForm.Server_Lagring1==false){document.subscribeForm.Server_Lagring.value=false;}
if(document.subscribeForm.Natverk1.checked){document.subscribeForm.Natverk.value=true;}
if(document.subscribeForm.Natverk1.checked==false){document.subscribeForm.Natverk.value=false;}
if(document.subscribeForm.Programvara_Licenser1.checked){document.subscribeForm.Programvara_Licenser.value=true;}
if(document.subscribeForm.Programvara_Licenser1.checked==false){document.subscribeForm.Programvara_Licenser.value=false;}
if(document.subscribeForm.Datorer1.checked){document.subscribeForm.Datorer.value=true;}
if(document.subscribeForm.Datorer1.checked==false){document.subscribeForm.Datorer.value=false;}
if(document.subscribeForm.Skrivare1.checked){document.subscribeForm.Skrivare.value=true;}
if(document.subscribeForm.Skrivare1.checked==false){document.subscribeForm.Skrivare.value=false;}
}
 //-->
</script>

  <form  action="*" method="post" onsubmit="box_update(this);">
  <!--de hidden boxar som ska skicka det egentlia värdet in i systemet//-->
  <input type="hidden" name="Apple" value="false" />
  <input type="hidden" name="Server_Lagring" value="false" />
  <input type="hidden" name="Natverk" value="false" />
  <input type="hidden" name="Programvara_Licenser" value="false" />
  <input type="hidden" name="Datorer" value="false" />
  <input type="hidden" name="Skrivare" value="false" />
  <!--slut hidden//-->
  <table>
   <tr>
  <td>
<!--Här kommer kvasi-boxarna som testas i javascriptet//-->

<input type="checkbox" name="Apple1" id="Apple1" value="Yes" />Apple<br />
<input type="checkbox" value="Yes" name="Server_Lagring1" id="Server_Lagring1" />Server & Lagring
<input type="checkbox" value="Yes" name="Natverk1" id="Natverk1" />N&auml;tverk
<input type="checkbox" value="Yes" name="Programvara_Licenser1" id="Programvara_Licenser1" />Programvara & Licenser<br />
<input type="checkbox" value="Yes" name="Datorer1" id="Datorer1" />atorer<br />
<input type="checkbox" value="Yes" name="Skrivare1" id="Skrivare1" />Skrivare
</td>
</tr>
</table>
</form>
</body>
</html>
Medlem sedan aug. 20039 340 inlägg
#2

Varför ska du ens göra på det viset? Varför inte bara läsa av checkboxarna normalt på serversidan?
Jag ser ett flertal problem med din kod. Ett av dem är att du itne har något formulär med name="subscribeForm"

296 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
151 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
157 ms — ändringar (db)