anoniem Geplaatst: 10 april 2004 Delen Geplaatst: 10 april 2004 Dag mensen, ik heb de volgende vraag: Ik heb 1 textbox, en daarin typt men een getal. Dit getal zijn meters, dus ik wil dat Javascript er een 'm' achter zet. Tot zover ben ik gekomen: [code:1:adea5728d9]function meters() { start=document.jacht.lengte.value document.jacht.lengte.value=start+" m" }[/code:1:adea5728d9] En de textbox roept de functie aan met onblur(). Maar als ik in de textbox het getal verander, komt er WEER een 'm' achter. Hoe kan ik dit voorkomen? Alvast dank, Quote Link naar reactie
anoniem Geplaatst: 10 april 2004 Auteur Delen Geplaatst: 10 april 2004 http://www.devguru.com/Technologies/ecmascript/quickref/isnan.html - Bas Quote Link naar reactie
anoniem Geplaatst: 11 april 2004 Auteur Delen Geplaatst: 11 april 2004 Bedankt :) Je hebt me een aardig eind op weg geholpen. Maar nu zit ik met een functie, en die werkt: [code:1:a49223ba31]function meters(veld) { start=document.jacht.veld.value if (!isNaN(start)) { start=document.jacht.veld.value+" m" document.jacht.veld.value=start } }[/code:1:a49223ba31] Maar nu wil ik dit in meerdere textboxes gebruiken. Dus ik wil de iets meegeven met de functie. namelijk de veldnaam. Maar hoe kan ik die veld naam nou verwerken in: document.jacht.veld.value Want zoals het er nu staat, ziet ie veld als DE veldnaam. Alvast bedankt voor het antwoord. Quote Link naar reactie
anoniem Geplaatst: 11 april 2004 Auteur Delen Geplaatst: 11 april 2004 Alle velden een unieke ID meegeven en vervolgens het scriptje een beetje aanpassen zodat het JS DOM gebruikt:[code:1:fee265cda2]function meters(veld) { var field = document.getElementById(veld); var start = field.value; if (!isNaN(start)) { start=start+" m"; field.value=start; } }[/code:1:fee265cda2]Ben geen JavaScript expert, maar zoiets zou het moeten zijn. - Bas Quote Link naar reactie
anoniem Geplaatst: 11 april 2004 Auteur Delen Geplaatst: 11 april 2004 function meters(veld) { var field = document.getElementById(veld); var start = field.value; [color=red:c02dc432ad]<<<<< object vereist[/color:c02dc432ad] if (!isNaN(start)) { start=start+" m"; field.value=start; } } Die error krijg ik, wat is er loos? Quote Link naar reactie
anoniem Geplaatst: 11 april 2004 Auteur Delen Geplaatst: 11 april 2004 Misschien [i:1fd69fd206]value[/i:1fd69fd206] vervangen door [i:1fd69fd206]getValue()[/i:1fd69fd206]:[code:1:1fd69fd206]function meters(veld) { var field = document.getElementById(veld); var start = field.getValue(); if (!isNaN(start)) { start=start+" m"; field.setValue(start); } }[/code:1:1fd69fd206]Je zult ff zelf moeten zoeken of wachten tot iemand anders je helpt, want vanaf hier is het voor mij ook een kwestie van "gokken". - Bas Quote Link naar reactie
anoniem Geplaatst: 12 april 2004 Auteur Delen Geplaatst: 12 april 2004 Je kan ook gewoon voor de "old-fashioned" methode kiezen en de elementen uit de form via de [i:689cac92ab]forms [/i:689cac92ab]en [i:689cac92ab]elements [/i:689cac92ab]collecties aanspreken. [code:1:689cac92ab] function meters(veld) { var field = document.forms["jacht"].elements[veld]; var start = field.value; if (!isNaN(start)) { start=start+" m"; field.value=start; } } [/code:1:689cac92ab] Overigens, als je de functie onblur aanroept vanuit een text input kan je nog beter [i:689cac92ab]this[/i:689cac92ab] meegeven: [code:1:689cac92ab] <input type="text" onblur="meters(this)" /> [/code:1:689cac92ab] [code:1:689cac92ab] function meters(veld) { var start = veld.value; if (!isNaN(start)) { start=start+" m"; veld.value=start; } } [/code:1:689cac92ab] Quote Link naar reactie
anoniem Geplaatst: 12 april 2004 Auteur Delen Geplaatst: 12 april 2004 Bas, ik denk dat je 'nodeValue' zoekt. Neem anders de DOM2 Quick Reference sidebar (te vinden op devedge.netscape.com). Quote Link naar reactie
anoniem Geplaatst: 12 april 2004 Auteur Delen Geplaatst: 12 april 2004 nodeValue zal niet werken (tenzij je eerst een attribute-node selecteert). Een andere optie is getAttribute gebruiken. Voorbeeldjes (ongetest): [code:1:e0edd5dc70] var field = document.getElementById(veld); var start = field.getAttributeNode("value").nodeValue; [/code:1:e0edd5dc70] [code:1:e0edd5dc70] var field = document.getElementById(veld); var start = field.getAttribute("value"); [/code:1:e0edd5dc70] Quote Link naar reactie
anoniem Geplaatst: 12 april 2004 Auteur Delen Geplaatst: 12 april 2004 Ik denk dat een getAttribute of getAttributeNode de letterlijke tekst van de attribute 'value' weergeeft (of zou moeten weergeven). http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html Ziet het dom atttribuut 'value'. getAttribute("value") is dus hetzelfde als de defaultValue dom attribuut. Liever had ik gehad dat ook de html-attributen veranderd zou worden, maar ja... Quote Link naar reactie
anoniem Geplaatst: 12 april 2004 Auteur Delen Geplaatst: 12 april 2004 Annie, jou oplossing werkt. Bedankt :) Ik heb alleen onchange() gebruikt, dan komt er niets in te staan als je alleen even met de cursor er in en eruit gaat. Tnx Quote Link naar reactie
anoniem Geplaatst: 12 april 2004 Auteur Delen Geplaatst: 12 april 2004 edit: --- foutje, bedankt! Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen