firebug says: document.post has no properties

Status
Niet open voor verdere reacties.

janusss

Gebruiker
Lid geworden
21 okt 2006
Berichten
91
hey, ik heb een javascriptfunctie

PHP:
function helpline(help) {
	document.post.helpbox.value = eval(help + "_help");
}

en heb dit form:

PHP:
<form action="/NB_schrijven.php?mode=bewerk&id=18" method="post" id="post" name="post" onsubmit="return Valideren()">
              <span class="NB_text">In welke categorie past het bericht?<br>

			  <input type="radio" name="categorie" value="0"  >Nieuws<br>
			  <input type="radio" name="categorie" value="1"  >Competitie<br>
			  <input type="radio" name="categorie" value="2"  >Meerdaalliga<br>
			  <input type="radio" name="categorie" value="3"  CHECKED >Tornooi<br><br></span>

	  
	          <span class="NB_text">Titel:</span><br>
		      <input type="text" name="titel" size="45" maxlength="75" style="width:450px" tabindex="2" class="veld" value="Provinciaal jeugdcriterium"><br><br>

			  <span class="NB_text">Bericht:</span><br>
			  
			  <input type="button" class="button" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onClick="bbstyle(0)" onMouseOver="helpline('b')">
			  <input type="button" class="button" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onClick="bbstyle(2)" onMouseOver="helpline('i')">
			  <input type="button" class="button" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onClick="bbstyle(4)" onMouseOver="helpline('u')">
			  <input type="button" class="button" accesskey="p" name="addbbcode14" value="Img" style="width: 40px"  onClick="bbstyle(14)" onMouseOver="helpline('p')">
			  <input type="button" class="button" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onClick="bbstyle(16)" onMouseOver="helpline('w')">
				  <span class="NB_text">Textkleur:</span>
					<select class="select" name="addbbcode18" onChange="bbfontstyle('<font color=' + this.form.addbbcode18.options[this.form.addbbcode18.selectedIndex].value + '>', '</font>');this.selectedIndex=0;" onMouseOver="helpline('s')">

					  <option style="color:black; background-color: #FAFAFA" value="#444444">Standaard</option>
					  <option style="color:darkred; background-color: #FAFAFA" value="darkred">Donkerrood</option>
					  <option style="color:red; background-color: #FAFAFA" value="red">Rood</option>
					  <option style="color:orange; background-color: #FAFAFA" value="orange">Oranje</option>
					  <option style="color:brown; background-color: #FAFAFA" value="brown">Bruin</option>
					  <option style="color:yellow; background-color: #FAFAFA" value="yellow">Geel</option>

					  <option style="color:green; background-color: #FAFAFA" value="green">Groen</option>
					  <option style="color:olive; background-color: #FAFAFA" value="olive">Olijf</option>
					  <option style="color:cyan; background-color: #FAFAFA" value="cyan">Cyaan</option>
					  <option style="color:blue; background-color: #FAFAFA" value="blue">Blauw</option>
					  <option style="color:darkblue; background-color: #FAFAFA" value="darkblue">Donkerblauw</option>
					  <option style="color:indigo; background-color: #FAFAFA" value="indigo">Indigo</option>

					  <option style="color:violet; background-color: #FAFAFA" value="violet">Violet</option>
					  <option style="color:white; background-color: #FAFAFA" value="white">Wit</option>
					  <option style="color:black; background-color: #FAFAFA" value="black">Zwart</option>
					</select>
				  <span class="NB_text"><a href="javascript:bbstyle(-1)" onMouseOver="helpline('a')">Sluit tags</a><br></span>
			
			
			  <input type="text" name="helpbox" size="45" maxlength="100" style="width:700px; font-size:10px" class="veld" value="Tip: BBCode kan je toepassen op geselecteerde tekst" />
			  <textarea name="bericht" rows="15" cols="35" wrap="virtual" style="width:700px" tabindex="3" class="veld" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">
</textarea>

<input type="submit" accesskey="s" tabindex="6" name="opslaan" class="button" value="Opslaan!">
</form>

mijn functie werkt echter niet en firebug geeft volgende error :document.post has no properties

iemand een idee?

alvast bedankt!
 
Wat hoort die functie te gaan doen dan?

De functie eval evalueert de input en geeft het resultaat.

Zonder werkt hij wel...
HTML:
function helpline(help) { 
    document.post.helpbox.value = help + "_help";
}
 
Je mist nog de variabelen b_help, i_help, u_help enz.. Maar dan werkt 't al wel. Bv.:
PHP:
<script type="text/javascript">
 var b_help = 'plaats [b] ... [/b] rond de tekst';
 var i_help = 'plaats [i] ... [/i] rond de tekst';
 var u_help = 'plaats [u] ... [/u] rond de tekst';
 function helpline(help) { 
  document.post.helpbox.value = eval(help + "_help"); 
  };
</script>
Vr.Gr. Egel.
 
Hmm dan krijg ik het gevoel dat ik een deel van een topic zit te bekijken...

Wellicht dat Egel mij uit kan leggen wat de functie eval precies in deze functie doet? Ben tegenwoordig wat meer met JS bezig dus alle kennis is gewenst :)
 
Laatst bewerkt:
eval gaat op zoek naar de waarde van de variabelen b_help enz...

zonder eval gaat hij letterlijk b_help naar het veld sturen.

Het probleem lag niet in de functie, die werkt perfect, ik had een ander probleem, een andere formtag die in bepaalde gevallen niet afgesloten werd door php...

Sorry voor de last maar mss leert Tha Devil hier nog iets uit..
 
eval() van evaluate voert een string uit als was het script. bv.:
PHP:
var s = 'ff';
eval('var ' + s + ' = 123');
alert(ff) // de variabele ff is 123
Als de functie helpline() wordt aangeroepen met de parameter 'b' krijg je:
document.post.helpbox.value = eval('b' + '_help');
en dat is gelijk aan:
document.post.helpbox.value = b_help;


Vr.Gr. Egel.
 
Wat is het verschil dan met
document.post.helpbox.value = help + "_help";
en
document.post.helpbox.value = eval(help + "_help");

Mijns inziens staat daar gewoon hetzelfde :rolleyes: of zorgt eval ervoor dat hij naar een variabele gaat zoeken?
 
document.post.helpbox.value = help + "_help";
Dat is een string, als help de waarde 'b' heeft is het hetzelfde als:
document.post.helpbox.value = 'b_help';

document.post.helpbox.value = eval(help + "_help");
Daar zet eval() de string om in script, als help de waarde 'b' heeft is het hetzelfde als:
document.post.helpbox.value = b_help;


@janusss, je zou ook een array kunnen gebruiken voor de helpteksten:
PHP:
<script type="text/javascript">
 var helptext = new Array();
 helptext['b'] = 'plaats [b] ... [/b] rond de tekst';
 helptext['i'] = 'plaats [i] ... [/i] rond de tekst';
 helptext['u'] = 'plaats [u] ... [/u] rond de tekst';
 function helpline(help) { 
  document.post.helpbox.value =  helptext[help]; 
  };
</script>


Vr.Gr. Egel.
 
Laatst bewerkt:
Ah kijk aan, ik had al wel zo'n vermoeden dat hij het naar een variabele zou omzetten maar de zekerheid bleef wat uit.

Toch verhelderend zo'n vraag van een ander :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan