[js] focus op form element via variabelen

Pagina: 1
Acties:

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Haai.

Ik zit met een probleempje. Ik wil voor sommige textareas dat de gebruiker een knop indrukt, en dat dan, afhankelijk van welke knop ze indrukken, er goeie bb-tags om worden gezet. (hij maakt dan van "dit moet vetgedrukt zijn" bijvoorbeeld "dit moet vetgedrukt zijn".

Ik heb het scriptje werkend gekregen, maar, nu wil ik dat het scriptje ook werkt voor andere formnamen, en textarea namen. Ik wil het scriptje gebruiken in meerdere scripts namelijk. Ik wilde dit oplossen door de naam van het form en het textarea element mee te geven aan mijn functie, dit is wat hoe de code er dan uitziet:

code:
1
2
3
4
5
      function replacetext(value, form, formelement) 
      {
        document.form.formelement.focus();
        document.selection.createRange().text = "[" + value + "]" + document.selection.createRange().text + "[/" + value + "]";
      }


dit roep ik aan met:

code:
1
<INPUT type="button" name="bold" value="B" onClick="javascript:replacetext('b', makepost, post)" class="formz" style="font-weight: bold;">


echter, als ik dit test, dan krijg ik de volgende foutmelding:

error: document.form.formelement is null or not an object.

hij wijst dus niet de waarden van form en formelement toe in die functie. Ik ben niet zo'n held met javascript, en verwacht waarschijnlijk een te PHP-achtige response van het taaltje, maar ik krijg het maar niet werkend. Iemand de oplossing voor mij? Want na 2 uur klungelen en googlen is de fun er voor mij zo'n beetje af...

(PS. ik heb ook al geprobeerd '' om makepost en post te zetten, dat werktte ook niet...)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Croga
  • Registratie: Oktober 2001
  • Nu online

Croga

The Unreasonable Man

Grijze Vos schreef op 25 februari 2003 @ 05:26:

code:
1
2
3
4
5
6
      function replacetext(value, form, formelement) 
      {
        document.form.formelement.focus();
        document.selection.createRange().text = "[" + value + "]" +
        document.selection.createRange().text + "[/" + value + "]";
      }


dit roep ik aan met:

code:
1
2
<INPUT type="button" name="bold" value="B" onClick="javascript:replacetext('b', makepost, post)"
class="formz" style="font-weight: bold;">


echter, als ik dit test, dan krijg ik de volgende foutmelding:

error: document.form.formelement is null or not an object.
Het probleem is dat makeppost en post geen objecten zijn. Je zult dus window.document.forms[0] (of de naam van je form) en forms[0].*itemnaam* mee moeten sturen.

Ik vraag me alleen af of het niet beter is om deze conversie serverside te doen... geeft je iets meer controle over wat er precies gebeurt.

[ Voor 9% gewijzigd door Croga op 25-02-2003 05:53 . Reden: poging om opmaak te verbeteren ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

zucht...
JavaScript:
1
2
3
document.forms[form].elements[formelement].focus();
...
onClick="replacetext('b', 'makepost', 'post')"

[ Voor 49% gewijzigd door crisp op 25-02-2003 08:31 ]

Intentionally left blank


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Bedankt crisp. dat was inderdaad de juiste syntax.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

crisp schreef op 25 februari 2003 @ 08:30:
onClick="replacetext('b', 'makepost', 'post')"
HTML:
1
onclick="replacetext('b', 'makepost', 'post')"

front ter bevordering van het gebruik van xhtml ;)

[ Voor 20% gewijzigd door Annie op 25-02-2003 12:14 ]

Today's subliminal thought is:


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Ik zit met nog een vaag foutje. Als ik mijn javascript in een externe file gooi, dan gaat ie zeuren dat ie een object verwacht.

Mja, ik ga er nog mee doorkutten. Iemand een goede site of boek als aanrader voor JS? Ziet ernaar uit dat ik toch meer ermee ga doen dan ik in eerste instantie wilde :) En de sites die ik tot nu toe gezien heb zijn qua tutorials toch redelijk basic...

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Grijze Vos schreef op 26 February 2003 @ 22:30:
Ik zit met nog een vaag foutje. Als ik mijn javascript in een externe file gooi, dan gaat ie zeuren dat ie een object verwacht.

Mja, ik ga er nog mee doorkutten. Iemand een goede site of boek als aanrader voor JS? Ziet ernaar uit dat ik toch meer ermee ga doen dan ik in eerste instantie wilde :) En de sites die ik tot nu toe gezien heb zijn qua tutorials toch redelijk basic...
In een externe javascript file mag er geen <script ...> </script> meer om de code heen staan (mijn glazen bol zegt dat dat waarschijnlijk de fout is ;) )

Javascript guide & reference

Intentionally left blank


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Nee, dat is het niet. Ben dan wel nieuw met javascript, maar niet compleet dom ;)

Ik denk dat het ligt aan die "document." Hoe wordt die precies bepaald? Erg irritant om daar wat fatsoenlijke documentatie over te vinden...

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Grijze Vos schreef op 26 February 2003 @ 22:58:
Nee, dat is het niet. Ben dan wel nieuw met javascript, maar niet compleet dom ;)

Ik denk dat het ligt aan die "document." Hoe wordt die precies bepaald? Erg irritant om daar wat fatsoenlijke documentatie over te vinden...
Het mag niets uitmaken of je in de <head> sectie van je document zoiets zet:
JavaScript:
1
2
3
4
5
<script type="text/javascript">
function bla(piet) {
  alert(piet);
}
</script>

of dat je de functie in een los bestand zet (zonder <script> tags dan ;) ) en dit in je <head> sectie plaatst:
HTML:
1
<script type="text/javascript" src="melp.js"></script>

Intentionally left blank


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Ben ik helemaal met je eens, maar toch werkt het niet ;)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Grijze Vos schreef op 26 februari 2003 @ 23:19:
Ben ik helemaal met je eens, maar toch werkt het niet ;)
Dan ben ik bang dat we toch wat meer info nodig hebben in de vorm van wat code en/of een linkje, want die glazen bol van mij begint een beetje wazig te worden... ;)

Intentionally left blank


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Hehe. Ik heb de bug gevonden. Ik zette het javascriptje in mijn "skin" directory (daar wordt al mn HTML-code gegenereerd), maar de referentie zat in de homedir van de website (dom, dom, dom).

Als JS nou gewoon had gezegd "undefined function" ipv "object expected", dan had ik deze bug al veel eerder ontdekt...

edit:
typo

[ Voor 12% gewijzigd door Grijze Vos op 26-02-2003 23:28 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Grijze Vos schreef op 26 februari 2003 @ 23:27:
Hehe. Ik heb de bug gevonden. Ik zette het javascriptje in mijn "skin" directory (daar wordt al mn HTML-code gegenereerd), maar de referentie zat in de homedir van de website (dom, dom, dom).

Als JS nou gewoon had gezegd "undefined function" ipv "object expected", dan had ik deze bug al veel eerder gehad...
Probeer anders voortaan eens te debuggen in Mozilla, die geeft over het algemeen veel duidelijkere foutboodschappen in het javascript console :)

Intentionally left blank


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Goeie tip. Ben wel bang voor de layout in mozilla. heb de site in frames gemaakt, en met wat IE only elementjes (oeps :)) Maar, ik bouw de site wel zo dat ik skins kan bouwen met, en zonder frames. (en dat geeft af en toe een hele hoop irritatie.) Ik stel mezelf ook altijd van die belachelijke eisen :)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info

Pagina: 1