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 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
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 Om du byter till en button istället för en submit?
Ska testa... Du är asshyst om du får det att fungera !!
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 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,
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 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 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 Kul att se att vi tänker likadant @nders ;)
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 =)
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 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>");
\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 \n är radbrytning i javascriptsträngar, ja.
mvh,