Avatar billede discowarp9 Nybegynder
17. juni 2003 - 13:55 Der er 11 kommentarer og
1 løsning

Ændre value i formfelter.

Hejsa.
Er der nogen der kan se hvad der er galt med følgende kode? IE mener det er i frmevner.skill(i)...
Her er koden:
--------------------------------------------------------
skill = Split("<% Response.Write skilllist %>", ",")
cost = Split("<% Response.Write skillcost %>", ",")
Function Count()
i = 0
  Do
    If frmevner.skill(i).checked = checked Then
      frmevner.counter.value = clng(frmevner.counter.value) - clng(cost(i))
    End If
    i = i + 1
  Loop While Not i = Ubound(skill)
End Function
------------------------------------------------------
Både skill og cost er altså arrays, men tilsyneladende accepterer den det ikke som et id. Jeg har sat alle formfelternes id'er til hvert element i arrayet skill, så det er lidt mærkeligt.
Avatar billede eagleeye Praktikant
17. juni 2003 - 17:58 #1
Hvis indeholder arrayet.
Det er fordi du ikke bare kan ligge nanvet på et input i en variable og så skriver formnavn.variablenavn og så få fat i input feltet. Så skal du gøre det så du har et ID på inputet..

If frmevner.skill(i).checked = checked Then

sådan her:
If frmevner.(skill(i)).checked = checked Then
Avatar billede discowarp9 Nybegynder
17. juni 2003 - 20:17 #2
Beklager.
Først nu skriver den at der mangler et id, eller et objekt når jeg kalder funktionen.
Før skrev den at fejlen var "dette objekt understøtter ikke denne egenskab eller metode...
Avatar billede medions Nybegynder
17. juni 2003 - 21:45 #3
Prøv sådan her i stedet for:

skill = Split("<% Response.Write skilllist %>", ",")
cost = Split("<% Response.Write skillcost %>", ",")
Function Count()
i = 0
  Do
    If frmevner.skill(i).checked Then
      frmevner.counter.value = clng(frmevner.counter.value) - clng(cost(i))
    End If
    i = i + 1
  Loop While Not i = Ubound(skill)
End Function

(checked retunere en boolsk værdi!)

//>Rune
Avatar billede discowarp9 Nybegynder
17. juni 2003 - 21:52 #4
Endnu en gang desværre.
Den er meget fast besluttet på at "objektet understøtter ikke denne egenskab eller metode: 'frmevner.skill'".
Alle id'erne referere til checkboxes, så om fejlen ligger deri er muligt, men jeg vil ikke tro det...
Avatar billede medions Nybegynder
17. juni 2003 - 21:54 #5
Hvis du udskriver Response.Write(skilllist) hvad resultat får du så? (bare så jeg ved hvad jeg har at arbejde med)

//>Rune
Avatar billede discowarp9 Nybegynder
17. juni 2003 - 21:57 #6
Tjaa, funktionen er i VBScript, så den er allerede udskrevet. Men den ser sådan her ud:
skill = Split("Awareness,Backstab,Bastard,Bonk,Bow,Carry,Climb,Courage,Crossbow,Education,Endurance,Evaluate,Firstaid,Fistfight,Forge,Harvest,Herblore,Hunt,Lockpick,Maintenance,Mining,Myth,Poison,Power,Read,Search,Sharpshooter,Shield,Smithing,Steal,Strangle,Strength,Throw,Torture,Toughness,Trade,Twohanded,Twoweapon", ",")
Avatar billede medions Nybegynder
17. juni 2003 - 21:58 #7
Vil du ikke lige prøve at give mig hele din kode? Så er det lidt letttere for mig at afprøve det! (altså kun clientside koden)

//>Rune
Avatar billede discowarp9 Nybegynder
17. juni 2003 - 22:01 #8
Jo da, men jeg skærer checkboxene væk, for der er cirka 40, og det er ikke fed kode at se på. :-)
Men scriptet og siden ser sådan her ud:
-------------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<title>Lorania</title>
</head>
<body>
<script type="text/VBScript">
skill = Split("Awareness,Backstab,Bastard,Bonk,Bow,Carry,Climb,Courage,Crossbow,Education,Endurance,Evaluate,Firstaid,Fistfight,Forge,Harvest,Herblore,Hunt,Lockpick,Maintenance,Mining,Myth,Poison,Power,Read,Search,Sharpshooter,Shield,Smithing,Steal,Strangle,Strength,Throw,Torture,Toughness,Trade,Twohanded,Twoweapon", ",")
cost = Split("5,7,0,4,5,3,5,5,5,4,5,6,5,4,8,6,6,5,8,4,6,3,7,6,5,5,6,3,10,8,4,4,5,7,5,7,1,9", ",")
Function Count()
i = 0
  Do
    If frmevner.skill(i).checked Then
      frmevner.counter.value = clng(frmevner.counter.value) - clng(cost(i))
    End If
    i = i + 1
  Loop While Not i = Ubound(skill)
End Function
</script>
</body>
</html>
---------------------------------------------------
Checkboxene er på den her form:
---------------------------------------------------
<input type="checkbox" name="Backstab" id="Backstab" value="1" onclick="count()" />
----------------------------------------------------
Avatar billede medions Nybegynder
17. juni 2003 - 22:24 #9
Sådan her virker det:

<form name="frmevner">
      <input type="checkbox" name="Awareness" id="Awareness" value="1" onclick="count()" />
      <input type="checkbox" name="Backstab" id="Backstab" value="1" onclick="count()" checked />
      <input type="checkbox" name="Bastard" id="Bastard" value="1" onclick="count()" />
      <input type="checkbox" name="Bonk" id="BacBonkkstab" value="1" onclick="count()" />
</form>

<script type="text/VBScript">
skill = Split("Awareness,Backstab,Bastard,Bonk", ",")
cost = Split("5,7,0,4", ",")
Function Count()
For i = LBound(skill) To UBound(skill)
    'MsgBox(document.all["frmevner"].Awareness.checked)
   
    If document.frmevner.elements(skill(i)).checked Then
      'frmevner.counter.value = clng(frmevner.counter.value) - clng(cost(i))
    End If
Next
End Function
</script>

//>Rune
Avatar billede medions Nybegynder
17. juni 2003 - 22:25 #10
Sådan her selvf.

<form name="frmevner">
      <input type="checkbox" name="Awareness" id="Awareness" value="1" onclick="count()" />
      <input type="checkbox" name="Backstab" id="Backstab" value="1" onclick="count()" checked />
      <input type="checkbox" name="Bastard" id="Bastard" value="1" onclick="count()" />
      <input type="checkbox" name="Bonk" id="BacBonkkstab" value="1" onclick="count()" />
</form>

<script type="text/VBScript">
skill = Split("Awareness,Backstab,Bastard,Bonk", ",")
cost = Split("5,7,0,4", ",")
Function Count()
For i = LBound(skill) To UBound(skill)
    'MsgBox(document.all["frmevner"].Awareness.checked)
   
    If document.frmevner.elements(skill(i)).checked Then
      frmevner.counter.value = clng(frmevner.counter.value) - clng(cost(i))
    End If
Next
End Function
</script>

//>Rune
Avatar billede discowarp9 Nybegynder
17. juni 2003 - 22:38 #11
Genialt! Det virker.
Det var elements(skill(i)) der gjorde tricket.
Tak for hjælpen!
Avatar billede medions Nybegynder
17. juni 2003 - 22:39 #12
Yepzer ;o)
Thx 4 Poinz

//>Rune
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester