webForumDet fria alternativet

Haha...skratta inte ihjäl er åt min kod!!! ;)

JavaScript

9 svar · 510 visningar · startad av Gustav

Medlem sedan jan. 20001 932 inlägg
Frågan#1

Ok, man gör ju så gott man kan. Jag har verkligen inte en aning om vad det är jag har gjort...det enda jag vet är att det inte är rätt! ;)

Meningen med det här är att ett javascript ska läsa av två formulärfält, om det står "a" i det ena och "b" i det andra så ska ett script räkna ihop resultatet av de två svaren och sen skriva ut nåt tyket meddelande på sidan. Det borde väl inte vara så svårt...?

Här kommer iaf min vackra kod... ;)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>

<script language="JavaScript" type="text/javascript">

<!--
   function kollasvar1 (str)
    {
      var fraga1
      var svar1
      if (fraga1="a") then
      svar1=1
      else svar1=0
    }

<!--
   function kollasvar2
    {
      var fraga2
      var svar2
      if (fraga2='b') then
      svar2=1
      else svar1=0
    }

<!--
   function addera
    {
      var svar  
      svar=(svar1+svar2)
    }

  //-->
  </script>

</head>

<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">

 <p>
<form>
<p>Fråga 1:
<input type ="text" name ="fraga1" size=3>
<p>Fråga 2:
<input type= "text" name = "fraga2" size=3>
<p><a href="javascript:skrivaut();"><img SRC="start_knapp.jpg" BORDER=0 height=25 width=60></a>
<input type ="reset" value = "Radera">
</form>

<script language="JavaScript" type="text/javascript">
<!--
   function skrivaut
    {
      var svar
      if svar=2
      document.write("Du hade ju alla rätt! Duktig idiot!");
      if svar=1
      document.write("Du hade ju bara 1 rätt...hur dum får man vara?");
      else 
      document.write("Du är en looooser!");

    }

  //-->
  </script>

</body>
</html>

Snygg va? ;) ;) ;)

Nä, men allvarligt så kanske man borde fundera på att köpa nån bok om javascript...några tips???

Om nån har tid och ork att kolla på det här så vore jag mycket tacksam!

Medlem sedan dec. 19996 721 inlägg
#2

En bok vore nog inte fel, för här var det inte många rätt ;)

Man skriver inte "then" i if-satser, utan if (uttryck) {kod}.

Likhet kollas med == inte =

Formulärfältens värde hämtas inte så enkelt, utan genom t.ex. document.form.fraga1.value.

Dina funktioner anropas aldrig, använder lokala variabler som om de vore globala och argumenten används inte i funktionerna.

osv.

Ärligt talat, skaffa en bra bok och återkom, annars är det ingen större mening att rätta till.

mvh

Medlem sedan dec. 19992 085 inlägg
#3

Ja... för det första så använder man inte then i if satser i javascript och du verkar ha fått attribut i funktioner lite om bakfoten.. jag fixar koden så mycket jag kan:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>

<script language="JavaScript" type="text/javascript">

<!--
function kollasvar1 (str)
{
var fraga1;
var svar1;
if (fraga1="a"){
svar1=1;
}else{
 svar1=0;
}

<!--
function kollasvar2(){
var fraga2;
var svar2;
if (fraga2='b'){
svar2=1
}else{
 svar1=0;
}

<!--
function addera(){
var svar; 
svar=svar1+svar2;
}

//-->
</script>

</head>

<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">

<p>
<form>
<p>Fråga 1:
<input type ="text" name ="fraga1" size=3>
<p>Fråga 2:
<input type= "text" name = "fraga2" size=3>
<p><a href="javascript:skrivaut();"><img SRC="start_knapp.jpg" BORDER=0 height=25 width=60></a>
<input type ="reset" value = "Radera">
</form>

<script language="JavaScript" type="text/javascript">
<!--
function skrivaut(){
var svar;
if (svar=2){
document.write("Du hade ju alla rätt! Duktig idiot!");
if svar=1
document.write("Du hade ju bara 1 rätt...hur dum får man vara?");
}else{ 
document.write("Du är en looooser!");

}

//-->
</script>

</body>
</html>

Det här scriptet gör säkert inte det som du tänkt dig eftersom du inte lagrat några värden i svar1 svar 2 etc. Men nu är den nog iaf rätt... Dessutom måste funktionen skrivaut() ligga ovanför anropet av den.. den ska alltså ligga på samma ställe som de andra...

//M@rtin

[Redigerat av M@rtin den 28 mar 2000]

Medlem sedan jan. 20001 932 inlägg
#4

Nu då? Ser det lite bättre ut, eller?

<html>
<head>

<script language="JavaScript" type="text/javascript">

<!--
function kollasvar1
{
var fraga1;
var svar1;
if (document.form.fraga1.value='a'){
svar1=1;
}else{
svar1=0;
}

<!--
function kollasvar2
{
var fraga2;
var svar2;
if (document.form.fraga2.value='b'){
svar2=1
}else{
svar1=0;
}

<!--
function addera(){
var svar; 
svar=svar1+svar2;
}

    function kollaformularet (form)
    {
      if (form.fraga1.value.length == 0)
        alert ('Du har inte svarat.');
      else if (form.fraga1.value.length >=2 )
        alert ('Du har för många svarat med för många alternativ i Fråga 1.');

      else if (form.fraga2.value.length == 0)
        alert ('Du har inte svarat.');
      else if (form.fraga2.value.length >=2 )
        alert ('Du har för många svarat med för många alternativ i Fråga 1.');

      else
        return true;

      return false;
    }

<!--
function skrivaut()
{
var svar;
if (svar=2){
document.write("Du hade ju alla rätt! Duktig idiot!");
if (svar=1){
document.write("Du hade ju bara 1 rätt...hur dum får man vara?");
}else{ 
document.write("Du är en looooser!");

//-->
</script>

</head>

<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">

<p>
<form action="*">
<p>Fråga 1:
<input type ="text" name ="fraga1" size=3>
<p>Fråga 2:
<input type= "text" name = "fraga2" size=3>
<p><input type=button value="Klicka här!" name=knapp onSubmit ="return kollaformularet (this);" onClick="skrivaut(); return kollaformularet (this);">
<input type ="reset" value = "Radera">
</form>

</body>
</html>

Hahahahaha! Jag tror att jag är världens bästa javaprogrammerare...finns det ingenstans där man kan kolla massa olika attribut och taggar och allt vad det heter? Som en slags samling över olika funktioner och vad de för...

;)

Nån får gärna titta lite mer på koden... ;)

Medlem sedan dec. 19996 721 inlägg
#5

Det är fortfarande fel form på if-satserna, kollasvar1,kollasvar2 och addera anropas aldrig och kan tas bort. "svar" är en lokal variabel i skrivut() och saknar värde där, osv.

Jag antar att du gör skriptet för att lära dig mer, så ta en tiit på någon bra Javascript-tutorial först, så kan vi hjälpa till sedan.
http://www.webmonkey.com är okej, tror jag.

Medlem sedan dec. 19992 085 inlägg
#6

Det saknas lite semikolon på en del rader oxå.. Det heter dessutom inte javaprogrammerare utan javascriptprogrammerare.. Java är något helt annat...

Läs min JavaScript kurs på: http://www.webavis.nu

//M@rtin

Medlem sedan dec. 19996 721 inlägg
#7

...dessutom heter det inte JavaScript kurs utan JavaScript-kurs. ;)

Medlem sedan jan. 20001 932 inlägg
#8

Tack Martin!

Jag håller just nu på att gå igenom din kurs...den verkar skitbra!

Det är bara en liten petig sak jag hittade...;)

Så här kan man t.ex. göra i JavaScript:

Tal1=100;

Tal2=200;

Tal3=300;

Tal_summa= Tal1+Tal2+Tal3;

Här fick du även se hur man använder variablerna, Tal_summa får alltså värdet av de andra talen, den får alltså värdet 500.

Det där går väl inte riktigt ihop va? ;)

Jaja, nu ska jag göra klart kurs 3 sen ska jag ta mig en kopp kaffe...ha det bra!

Medlem sedan dec. 19996 592 inlägg
#9

Alla händelser heter något i still med Click, eller Change.

Hittade ett litet stavfel ;)

Medlem sedan dec. 19992 085 inlägg
#10

Hehe.. jag lovar att jag ska fixa dessa fel..
"still" kanske inte e så farligt men att jag skrev att det blev 500 kan ju ställa till riktiga problem... Man måste vara noga..
Jag ska även försöka skriva JavaScript-kurs i fortsättningen... :)

Kul att du tycker att den är bra iaf...

//M@rtin

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