login  Naam:   Wachtwoord: 
Registreer je!
 Forum

javascript variable

Offline besje - 11/02/2007 14:13
Avatar van besjeNieuw lid hoe kan ik een varible die megegeven wordt in de functie gebruiken?

ik heb dit

function bb(bbnumber, test) {


alert( 'form' + test);

var txtarea = document.form+ test +.msg;

......

}

nu werkt de alert. Maar als ik test tussen inzet dan werkt het niet meer. Hoe kan ik dit oplossen?

6 antwoorden

Gesponsorde links
Offline Rik - 11/02/2007 14:53
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je probeert met "document.form+ test +.msg" de inhoud van de textarea uit te lezen, maar omdat dat niet werkt slaat de hele functie vast.

Probeer eens je textarea een id mee te geven, en dan dit te gebruiken:
  1. var txtarea = document.getElementById(test).value
waarbij je voor test het id opgeeft.
Offline besje - 11/02/2007 15:20 (laatste wijziging 11/02/2007 15:21)
Avatar van besje Nieuw lid dat gaat niet omdat alle forms nodig zijn en die worden gewijzigd.
Ik zal de gehele code even geven (gedeelte van het stukje is van phpbb)
  1. function bbstyle(bbnumber, test) {
  2.  
  3.  
  4. //alert( 'form' + test);
  5.  
  6. var txtarea = document.form+test+.msg;
  7.  
  8.  
  9. donotinsert = false;
  10. theSelection = false;
  11. bblast = 0;
  12.  
  13. if (bbnumber == -1) { // Close all open tags & default button names
  14. while (bbcode[0]) {
  15. butnumber = arraypop(bbcode) - 1;
  16. txtarea.value += bbtags[butnumber + 1];
  17. buttext = eval('document.post.addbbcode' + butnumber + '.value');
  18. eval('document.form' + test + '.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
  19. }
  20. //imageTag = true; // All tags are closed including image tags :D
  21. txtarea.focus();
  22. return;
  23. }
  24.  
  25. if ((clientVer >= 4) && is_ie && is_win)
  26. {
  27. theSelection = document.selection.createRange().text; // Get text selection
  28. if (theSelection) {
  29. // Add tags around selection
  30. document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
  31. txtarea.focus();
  32. theSelection = '';
  33. return;
  34. }
  35. }
  36. else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
  37. {
  38. mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
  39. return;
  40. }
  41.  
  42. // Find last occurance of an open tag the same as the one just clicked
  43. for (i = 0; i < bbcode.length; i++) {
  44. if (bbcode[i] == bbnumber+1) {
  45. bblast = i;
  46. donotinsert = true;
  47. }
  48. }
  49.  
  50. if (donotinsert) { // Close all open tags up to the one just clicked &amp; default button names
  51. while (bbcode[bblast]) {
  52. butnumber = arraypop(bbcode) - 1;
  53. txtarea.value += bbtags[butnumber + 1];
  54. buttext = eval('document.form' + test + '.addbbcode' + butnumber + '.value');
  55. eval('document.form' + test + '.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
  56. imageTag = false;
  57. }
  58. txtarea.focus();
  59. return;
  60. } else { // Open tags
  61.  
  62. if (imageTag && (bbnumber != 14)) { // Close image tag before adding another
  63. txtarea.value += bbtags[15];
  64. lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list
  65. document.form1066.addbbcode14.value = "Img"; // Return button back to normal state
  66. imageTag = false;
  67. }
  68.  
  69. // Open tag
  70. txtarea.value += bbtags[bbnumber];
  71. if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
  72. arraypush(bbcode,bbnumber+1);
  73. eval('document.form' + test + '.addbbcode'+bbnumber+'.value += "*"');
  74. txtarea.focus();
  75. return;
  76. }
  77. storeCaret(txtarea);
  78. }
Offline Rik - 11/02/2007 15:26
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik snap het probleem niet helemaal.  

Doet de alert het nou niet of gaat het om de rest van de code?
Offline besje - 12/02/2007 08:42
Avatar van besje Nieuw lid het gaat om deze zit:
var txtarea = document.form+test+.msg;

hierbij is +test+ de variable. Alleen werkt dit niet.
Hoe kan ik dus een variable in deze zin gebruiken.
Offline Metalhead - 12/02/2007 11:09
Avatar van Metalhead HTML gevorderde Als het goed is, lukt dat met eval.
zoiets dus;
var txtarea = eval("document.form"+test+".msg");
Offline besje - 12/02/2007 13:12
Avatar van besje Nieuw lid het werkt!! dank je 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.213s