Toon posts:

[Javascript] Tekstverander script pakt verkeerde variable

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi, ben zelf een PHP-er, maar daar kan niet alles mee, nu heb ik een javascriptje gevonden, dat als ik een SELECTbox iets aanklik, dat hij ergens anders realtime de tekst veranderd, het probleem is hij pakt de verkeerde variable, bleek dat de site waar ik hem vandaan heb, die fout ook al had...... Maar ik heb geen flauw idee hoe ik het moet oplossen, naar mijn inzicht klopt het allemaal.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        <script language="Javascript">
var k1 = "1e Verdieping";
var k2 = "Op Verdieping";

function setText(myObj) {
  var selObj, selKeuze;
  selKeuze = myObj.selectedIndex;
  myKeuze = myObj.options[selKeuze].text;
  document.myForm.textResult.value = myKeuze;
  switch(myKeuze){
    case("1"):
      document.myForm.textResult.value = k1;
    case("2"):
      document.myForm.textResult.value = k2;
  }
}
</script>

<!-- Pulldownbox --!>
 <select name="myDropdown" onchange="setText(this)" >
   <option value="1"> Keuze 1 </option>
   <option value="2"> Keuze 2 </option>
</select>

<!-- Input voor change --!>
<INPUT TYPE="text" name="textResult" cols="15" rows="1" wrap="virtual" style="background:FFFFCC; border: none;" readonly >


Nu geeft hij in de input box. dus 'Keuze 1' weer ipv. 1e verdieping.... waar doe ik iets fout.

alvast bedankt!

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Deze regel weglaten:
code:
1
document.myForm.textResult.value = myKeuze;

Deze regel veranderen:
code:
1
2
3
4
5
myKeuze = myObj.options[selKeuze].text;

in 

myKeuze = myObj.options[selKeuze].value;


Maar nog mooier is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script language="Javascript">
  function setText(myObj)
  {
    myKeuze = myObj.options[myObj.selectedIndex].value;
    switch(myKeuze)
    {
      case("1"):
        document.forms["myForm"].elements["textResult"].value = myObj.options[myObj.selectedIndex].text;
      case("2"):
        document.forms["myForm"].elements["textResult"].value = myObj.options[myObj.selectedIndex].text;
    }
  }
</script>

<select name="myDropdown" onchange="setText(this)" >
  <option value="1">1e Verdieping</option>
  <option value="2">Op Verdieping</option>
</select>

<form name="myForm">
  <input type="text" name="textResult" cols="15" rows="1" wrap="virtual" readonly>
</form>

[ Voor 85% gewijzigd door André op 15-09-2004 13:26 ]


Verwijderd

Topicstarter
:) Hij pakt nu de goede variable. als ik Keuze 2 kies, maar als ik daarna weer Keuze 1 kies, dan verander hij hem niet terug :'(

Verwijderd

Topicstarter
Nee, bij die pulldownbox zit een andere Value, dan die moet verschijnen in het tekstje...

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Verwijderd schreef op 15 september 2004 @ 13:27:
Nee, bij die pulldownbox zit een andere Value, dan die moet verschijnen in het tekstje...
Oke:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script language="Javascript">
  k1 = "bla";
  k2 = "blabla";

  function setText(myObj)
  {
    myKeuze = myObj.options[myObj.selectedIndex].value;
    switch(myKeuze)
    {
      case("1"):
        document.forms["myForm"].elements["textResult"].value = k1;
      case("2"):
        document.forms["myForm"].elements["textResult"].value = k2;
    }
  }
</script>

<select name="myDropdown" onchange="setText(this)" >
  <option value="1">1e Verdieping</option>
  <option value="2">Op Verdieping</option>
</select>

<form name="myForm">
  <input type="text" name="textResult" cols="15" rows="1" wrap="virtual" readonly>
</form>

Verwijderd

Topicstarter
Dank voor je hulp! Hij verandert hem alleen nog niet terug

Dus als ik een andere keuze uit de pulldownbox kies, verandert hij hem niet meer. Hij geeft geen error niets, lijkt wel of hij gewoon het script niet aanroept

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Oeps :X sorry.

Aan het einde van je case statement moeten nog breaks:

code:
1
2
3
4
5
6
7
switch(myKeuze)
{
  case("1"):
    document.forms["myForm"].elements["textResult"].value = k1; break;
  case("2"):
    document.forms["myForm"].elements["textResult"].value = k2; break;
}

Verwijderd

Topicstarter
Geweldig u are my hero :)
Pagina: 1