webForumDet fria alternativet

Hjälp med ett javascript!

16 svar · 379 visningar · startad av Wiklund!!

Wiklund!!Medlem sedan juli 2002549 inlägg
#1

Skulle vara jätte tacksam om någon kunde hjälpa mig med ett javascript. Ska ha det till företaget där jag sommarjobbar. Servern sidan ska ligga på har inte stöd för ASP så jag blir tvungen att ge mig in på javascript istället, som jag är sågott som helt värdelös på...

Det jag vill ha är ett script som fungerar ungefär som en test, där man fyller i ett formulär och efter man klickat på submit knappen räknar scriptet ut hur många rätt man fick...

Fast på det scriptet jag vill ha finns det inget som är rätt eller fel, utan jag vill att scriptet ska räkna ut hur många frågor som man svarade svarsalternativet A på och hur många man svarade på svarsalternativet B på samt C.

Så efter man klickat på submit knappen ska man komma till en sida där det står ungefär såhär på:

Du svarade så här på de tolv frågorna:

A. 4 svar
B: 6 svar
C: 2 svar

Du är alltså en "A" person (om man svart flest A vill säga).

Hoppas det är någon som kan hjälpa mig, fråga gärna om det är nått i min beskrivning som ni inte förstår!

Tack på förhand!

KoplikMedlem sedan juli 20011 129 inlägg
#2

Jag slängde ihop en liten version, du får göra alternativen själv, men du förstår principen hoppas jag, byt hidden mot 4st radioknappar med samma namn bara, o en knapp med OnClick="DoCalC()" ...

<Form Name="Form" Method="Post">

<Input Type="Hidden" Value="B" Name="Val1">
<Input Type="Hidden" Value="A" Name="Val2">
<Input Type="Hidden" Value="C" Name="Val3">
<Input Type="Hidden" Value="C" Name="Val4">
<Input Type="Hidden" Value="D" Name="Val5">

<Script Language="Javascript">
var A=0,B=0,C=0,D=0;
function DoCalc()
{
  for(i=0;i<document.Form.elements.length;i++)
  {
    if(document.Form.elements[i].value == "A")
      A++;
    if(document.Form.elements[i].value == "B")
      B++;
    if(document.Form.elements[i].value == "C")
      C++;
    if(document.Form.elements[i].value == "D")
      D++;
  }
    alert("A=" + A + "\nB=" + B + "\nC=" + C + "\nD=" + D);
}
</Script>

</Form>

Hoppas det funkar fint! :bire

Wiklund!!Medlem sedan juli 2002549 inlägg
#3

Hmm.. får fan inte till det. Har skrivit så här:

<Form Name="Form" Method="Post">

Vad gillar du för färg?
<BR><BR>
<Input Type="radio" Value="A" Name="Val1"> Blå
<BR>
<Input Type="radio" Value="B" Name="Val2"> Grön
<BR>
<Input Type="radio" Value="C" Name="Val3"> Gul
<BR>
<Input Type="radio" Value="D" Name="Val4"> Röd
<br><br><hr><br>

<INPUT TYPE="submit" OnClick="DoCalC()" VALUE="Rätta testet">

</Form>

<Script Language="Javascript">
var A=0,B=0,C=0,D=0;
function DoCalc()
{
for(i=0;i<document.Form.elements.length;i++)
{
if(document.Form.elements*.value == "A")
A++;
if(document.Form.elements*.value == "B")
B++;
if(document.Form.elements*.value == "C")
C++;
if(document.Form.elements*.value == "D")
D++;
}
alert("A=" + A + "\nB=" + B + "\nC=" + C + "\nD=" + D);
}
</Script>

När man klickar på submit knappen händer ingenting! Snälla kan nån hjälpa mig!****

@ndersMedlem sedan juni 200032 969 inlägg
#4

Om du byter till en button istället för en submit?

Wiklund!!Medlem sedan juli 2002549 inlägg
#5

Ska testa... Du är asshyst om du får det att fungera !!

Wiklund!!Medlem sedan juli 2002549 inlägg
#6

Får felmeddelande på den här raden:

<Input Type="button" OnClick="DoCalC()" VALUE="Rätta testet">

Felmeddelande:

Ett object förväntas!

@ndersMedlem sedan juni 200032 969 inlägg
#7

Ja, du har ett stort C på slutet i anropet.

Javascript är skiftlägeskänsligt som attans.

Jag lade till en if-sats i javascriptet också. Testa detta:

<Form Name="Form" Method="Post"> 

Vad gillar du för färg? 
<BR><BR> 
<Input Type="radio" Value="A" Name="Val1"> Blå 
<BR> 
<Input Type="radio" Value="B" Name="Val2"> Grön 
<BR> 
<Input Type="radio" Value="C" Name="Val3"> Gul 
<BR> 
<Input Type="radio" Value="D" Name="Val4"> Röd 
<br><br><hr><br> 

<INPUT TYPE="button" OnClick="DoCalc()" VALUE="Rätta testet"> 

</Form> 

<Script Language="Javascript"> 
var A=0,B=0,C=0,D=0; 
function DoCalc() 
{ 
for(i=0;i<document.Form.elements.length;i++) 
if (document.Form.elements[i].checked) {
{ 
if(document.Form.elements[i].value == "A") 
A++; 
if(document.Form.elements[i].value == "B") 
B++; 
if(document.Form.elements[i].value == "C") 
C++; 
if(document.Form.elements[i].value == "D") 
D++; 
} 
}
alert("A=" + A + "\nB=" + B + "\nC=" + C + "\nD=" + D); 
} 
</Script>

Mvh,

Wiklund!!Medlem sedan juli 2002549 inlägg
#8

Haha lite iretterande då... Tack så mycket!

En liten fråga till bara, vet du hur man gör för att skicka besökaren till en speciell sida beronde på vilket man svarast mest på, A,B,C eller D.

Behöver det här scriptet till en kursplats där jag sommarjobbar. Sista dan idag så det vore bra om jag fick till det här!

@ndersMedlem sedan juni 200032 969 inlägg
#9
if (A>B && A>C && A>D)
     location.href = 'flesta.html';
if (B>A && B>C && B>D)
     location.href = 'flestb.html';
if (C>A && C>B && C>D)
     location.href = 'flestc.html';
if (D>A && D>B && D>C)
     location.href = 'flestd.html';

Ska du ha fler alternativ får du lägga till fler if-satser och se till att jämföra mot de nya alternativen i if-satserna.

Mvh,

KoplikMedlem sedan juli 20011 129 inlägg
#10

Kommer inte på något bra sätt att jämföra värden, men kör helt enkelt med följande sist innan }-tecket på slutet av funktionen.

if(A > B && A > C && A > D)
  location.href='FlestaA.htm';
if(B > A && B > C && B > D)
  location.href='FlestaB.htm';
if(C > A && C > B && C > D)
  location.href='FlestaC.htm';
if(D > A && D > B && D > C)
  location.href='FlestaD.htm';

typ...

KoplikMedlem sedan juli 20011 129 inlägg
#11

Kul att se att vi tänker likadant @nders ;)

Wiklund!!Medlem sedan juli 2002549 inlägg
#12

Tack så mycket!

Wiklund!!Medlem sedan juli 2002549 inlägg
#13

Javascript är svårt jämnfört med ASP, eller det kanske är för att jag aldrig har haft tanken på att ens lära mig javascript =)

Wiklund!!Medlem sedan juli 2002549 inlägg
#14

Hur gör man för att lägga in htmlkod i document.write? Har försökt så här men det fungerar inte =(

document.write("<b> "V=" + V + "\nA=" + A + "\nK=" + K </b>");

@ndersMedlem sedan juni 200032 969 inlägg
#15

Jo, det ska väl gå att göra så. Det satt dock ett citationstecken fel i början, och lite fel i slutet. Sen ska du väl ha <br> och inte \n?

document.write("<b>V=" + V + "\nA=" + A + "\nK=" + K + "</b>");
Wiklund!!Medlem sedan juli 2002549 inlägg
#16

\n gör så man byter rad i alert meddelanden och sånt va? fast om jag ska skriva ut det direkt på sidan måste jag använda <br>?

Börjar ju lära mig lite här =)

@ndersMedlem sedan juni 200032 969 inlägg
#17

\n är radbrytning i javascriptsträngar, ja.

mvh,

128 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)