Vraag & Antwoord

Webprogrammeren & scripting

Javascript: variable maken van input

19 antwoorden
  • ik wil van het veld opwnummer in het form extrafunctie een variabele maken, maar dat wil niet egt lukken. Het form ziet er als volgt uit: <form name="extrafunctie"> <input type="TEXT" value="" style="width:180px;height:24px" name="opwnummer"><br> <input type="submit" value="O" style="width:45px;height:24px" name="typeO" onClick=window.open(locatieO,"preview")> <input type="submit" value="T" style="width:45px;height:24px" name="typeT" onClick=window.open(locatieT,"preview")> <input type="submit" value="K" style="width:45px;height:24px" name="typeK" onClick=window.open(locatieK,"preview")> <input type="submit" value="E" style="width:45px;height:24px" name="typeE" onClick=window.open(locatieE,"preview")> </form> Verder geeft hij de hele tijd aan dat locatieO/locatieT/locatieK/locatieE niet bereikbaar zijn. Die variabelen maak ik door middel van de code: var locatieO = '../songs/opw/' + opwSong[nummer][0] + 'preview.htm'; var locatieT = '../songs/opt/' + optSong[nummer][0] + 'preview.htm'; var locatieK = '../songs/opk/' + opkSong[nummer][0] + 'preview.htm'; var locatieE = '../songs/ovg/' + opvSong[nummer][0] + 'preview.htm'; Hierbij moet nummer dus voortkomen uit het veld opwnummer(wat ik bovenaan noemde). Is het btw ook mogelijk om hier een getal van 3 cijfers van te maken, dus 11 wordt 011? Het doel is dus bijvoorbeeld: :o vul in "opwnummer" 56 in :o druk op "typeO" :o vervolgens verschijnt in frame "preview" het bestand met als locatie "../songs/opw/056preview.htm" HELP ME PLZ!!!
  • Gebruik GetElementById() [code:1:99451984d7]<form name="extrafunctie"> <input type="TEXT" value="" style="width:180px;height:24px" name="opwnummer" id="opwnummer"><br> .... [/code:1:99451984d7] En dan in de javascript iets van: var OpwNummer = document.GetElementById("opwnummer"); Exacte syntax weet ik niet, moet je even op google zoeken....
  • Je zal de waarde van het input veld moeten uitlezen en dat kan met [color=blue:2cf5ae2b58]document.forms["formnaam"].elements["inputnaam"].value[/color:2cf5ae2b58] (via de DOM, bijv. getElementById, kan natuurlijk ook). Deze waarde plak je dan in je pad. De hele afhandeling van de onclick kan je imho overigens beter in een functie stoppen om het geheel wat overzichtelijker te maken. Om de getallen op te maken met extra voorloopnullen zal je zelf iets moeten schrijven. Javascript heeft hier geen standaardfuntionaliteit voor. bijv. [code:1:2cf5ae2b58] <input type="button" value="O" onclick="previewWindow('opw')" /> <script type="text/javascript"> function previewWindow(sPath) { var sNumber = document.forms["extrafunctie"].elements["opwnummer"].value; // voorloopnullen toevoegen sNumber = "000".substring(sNumber.length) + sNumber; var sLocation = '../songs/' + sPath + '/' + sNumber + 'preview.htm'; window.open(sLocation, 'preview'); } </script> [/code:1:2cf5ae2b58] p.s. als je nog meer opmaak mogelijkheden dan alleen wat voorloopnullen zoekt voor variabelen dan kan je ook [url=http://www.codebase.nl/?command=viewcode&id=106]sprintf[/url] gebruiken.
  • wat gaat er mis als ik het met beiden niet voor mekaar krijg??? HELP ME
  • [quote:795a9434be="ANNErd"]wat gaat er mis als ik het met beiden niet voor mekaar krijg???[/quote:795a9434be] Zonder extra informatie kan ik je echt niet helpen, hoe graag je ook wil. Ik kan nog steeds geen koffiedik kijken en die glazen bol wil C!T ook maar niet leveren. Dus, wat gaat er mis? Wat is je foutmelding? Wat snap je niet? Heb je iets online staan zodat we mee kunnen kijken? Of kan je de relevante code laten zien? Wat heb je zelf al allemaal geprobeerd?
  • ik kan wel de volledidge code geven, maar die zit ook weer vol externe scripts. Onder het motto "niet geschoten, altijd mis" toch maar de volledige code: het gaat hierbij om de vette stukken <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <link rel="stylesheet" type="text/css" href="css/mainmenu.css"> <title>Hoofdmenu</title> <script language="JavaScript" src="setup.js"></script> <script language="JavaScript" src="../songs/opw/songrecords-opw.js"></script> <script language="JavaScript" src="../songs/opt/songrecords-opt.js"></script> <script language="JavaScript" src="../songs/opk/songrecords-opk.js"></script> <script language="JavaScript" src="../songs/ovg/songrecords-ovg.js"></script> <SCRIPT LANGUAGE="JavaScript"> <!-- Begin var p1 = '<tr><td width="15%" valign="top" align="left"> <a href="songs/'; var p2 = '</a></td><td width="85%" valign="top" align="left"> <a href="songs/'; var page="<html><head><title>Zoekresultaat liederen</title><link rel='stylesheet' type='text/css' href='css/songindex.css'></head><body oncontextmenu='return false' onselectstart='return false' leftmargin='0' topmargin='0'><table border='1' width='100%'><tr><td width='15%' valign='top' align='left'><b>Nr.</b></td><td width='85%' valign='top' align='left'><b>Titel</b></td></tr>"; [b:2a40d67f0f] // var nummer = document.extrafunctie.opwnummer.value; var nummer = document.all.('opwnummer').value // var nummer = document.getElementById('opwnummer'); var locatieO = 'songs/opw/' + opwSong[nummer][0] + 'preview.htm'; var locatieT = 'songs/opt/' + optSong[nummer][0] + 'preview.htm'; var locatieK = 'songs/opk/' + opkSong[nummer][0] + 'preview.htm'; var locatieE = 'songs/ovg/' + opvSong[nummer][0] + 'preview.htm'; [/b:2a40d67f0f] function search(frm) { var filename = installPath+'\\menu\\find.js'; var findContent = 'var searchString="'+frm+'"'; var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.CreateTextFile(filename, true); file.WriteLine(findContent); file.Close(); window.open("menu/search.htm","preview"); } function showPopup(form) { pu = window.open('black-low.htm','copyright','scrollbars=no'); var code ='<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><link rel="stylesheet" type="text/css" href="css/copyright.css"><META HTTP-EQUIV="refresh" CONTENT="10; url=style.htm"><title>Mededeling</title></head><body oncontextmenu="return false" onselectstart="return false"><center>'; pu.document.write(code + popbox.message.value + '</center>\n') } // End --> </script> </head> <body oncontextmenu='return false' leftmargin="12" topmargin="6" rightmargin="0"> <FORM Name="Song selection"> <INPUT TYPE="Button" Value="Vrije tekst invoer" style="width:180px;height:24px" onClick=window.open("input/textentry.htm","preview")><br> <br> <INPUT TYPE="Button" ACCESSKEY="0" Value="Opw001-050" style="width:90px;height:24px" title="Opwekking liederen 001 t/m 050" onClick=window.open("menu/opw001-050songindex.htm","preview")><INPUT TYPE="Button" Value="Opw051-100" style="width:90px;height:24px" title="Opwekking liederen 051 t/m 100" onClick=window.open("menu/opw051-100songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="1" Value="Opw101-150" style="width:90px;height:24px" title="Opwekking liederen 101 t/m 150" onClick=window.open("menu/opw101-150songindex.htm","preview")><INPUT TYPE="Button" Value="Opw151-200" style="width:90px;height:24px" title="Opwekking liederen 151 t/m 200" onClick=window.open("menu/opw151-200songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="2" Value="Opw201-250" style="width:90px;height:24px" title="Opwekking liederen 201 t/m 250" onClick=window.open("menu/opw201-250songindex.htm","preview")><INPUT TYPE="Button" Value="Opw251-300" style="width:90px;height:24px" title="Opwekking liederen 251 t/m 300" onClick=window.open("menu/opw251-300songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="3" Value="Opw301-350" style="width:90px;height:24px" title="Opwekking liederen 301 t/m 350" onClick=window.open("menu/opw301-350songindex.htm","preview")><INPUT TYPE="Button" Value="Opw351-400" style="width:90px;height:24px" title="Opwekking liederen 351 t/m 400" onClick=window.open("menu/opw351-400songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="4" Value="Opw401-450" style="width:90px;height:24px" title="Opwekking liederen 401 t/m 450" onClick=window.open("menu/opw401-450songindex.htm","preview")><INPUT TYPE="Button" Value="Opw451-500" style="width:90px;height:24px" title="Opwekking liederen 451 t/m 500" onClick=window.open("menu/opw451-500songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="5" Value="Opw501-550" style="width:90px;height:24px" title="Opwekking liederen 501 t/m 550" onClick=window.open("menu/opw501-550songindex.htm","preview")><INPUT TYPE="Button" Value="Opw551-600" style="width:90px;height:24px" title="Opwekking liederen 551 t/m 600" onClick=window.open("menu/opw551-600songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="6" Value="Opw601-602" style="width:90px;height:24px" title="Opwekking liederen 601 t/m 602" onClick=window.open("menu/opw601-650songindex.htm","preview")><INPUT TYPE="Button" ACCESSKEY="o" Value="Opw-alles" style="width:90px;height:24px" title="Opwekking liederen 001 t/m 602" onClick=window.open("menu/opw-allsongindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="t" Value="OpwTieners" style="width:90px;height:24px" title="Opwekking voor tieners liederen" onClick=window.open("menu/optsongindex.htm","preview")><INPUT TYPE="Button" ACCESSKEY="k" Value="OpwKinderen" style="width:90px;height:24px" title="Opwekking voor kinderen liederen" onClick=window.open("menu/opksongindex.htm","preview")><br> <INPUT TYPE="Button" Value="Overigen" style="width:90px;height:24px" title="Overige liederen" onClick=window.open("menu/ovsongindex.htm","preview")><INPUT TYPE="Button" Value="Alle songs" style="width:90px;height:24px" title="Lijst van alle beschikbare liederen" onClick=window.open("menu/allsongindex.htm","preview")><br> </FORM> [b:2a40d67f0f]<form name="extrafunctie"> <input name="opwnummer" type="TEXT" id="opwnummer" style="width:180px;height:24px" value="001" maxlength="3"> <br> <input type="submit" value="O" style="width:45px;height:24px" name="typeO" onClick=window.open("locatieO","preview")> <input type="submit" value="T" style="width:45px;height:24px" name="typeT" onClick=window.open('locatieT',"preview")> <input type="submit" value="K" style="width:45px;height:24px" name="typeK" onClick=window.open(locatieK,"preview")> <input type="submit" value="E" style="width:45px;height:24px" name="typeE" onClick=window.open(locatieE,"preview")> </form> [/b:2a40d67f0f] <form method=get action="javascript:void(0)" onsubmit="txt=srchval.value;txt=txt.toLowerCase();search(txt); return false;"> <tr><td><input type="text" name="srchval" value="" style="width:180px;height:24px"><br><input type="submit" value="Zoeken in de titels" style="width:180px;height:24px"></td></tr> </form> <FORM Name="Screen selection"> <INPUT TYPE="Button" Value="Dimmen" style="width:80px;height:24px" onClick=window.open("fadeout.htm","copyright");window.open("fadeout.htm","display")><INPUT TYPE="Button" Value="Welkom" style="width:100px;height:24px" onClick=window.open("messages/welkom.htm","display")><br> <INPUT TYPE="Button" Value="Koffie" style="width:80px;height:24px" onClick=window.open("messages/koffie.htm","display")><INPUT TYPE="Button" Value="Mededelingen" style="width:100px;height:24px" onClick=window.open("messages/messages.htm","display")><br> <INPUT TYPE="Button" Value="Sneltoetsen instellen" style="width:180px;height:24px" onClick=window.open("menu/setuptopmenubuttons.htm","preview")><br> <INPUT TYPE="Button" Value="Systeem Menu" style="width:180px;height:24px" onClick=window.open("system/systemmenu.htm","preview")><br> <INPUT TYPE="Button" Value="Display Slides" style="width:180px;height:24px" onClick=window.open("menu/displayslides.htm","preview")><br> </FORM> <form Name="popbox" onsubmit="txt=message.value; showPopup(txt); return false;"> <INPUT type="text" name="message" value="" style="width:180px;height:24px"><br> <INPUT type="button" value="Oproepvenster" style="width:180px;height:24px" onClick=showPopup(message.value)><br> </form> </body> </html> Als je nog externe scripts wil, moet jut maar zeggen...
  • Ik zeg nog zo [quote:1091a40c50="Annie"]...Of kan je de [b:1091a40c50]relevante[/b:1091a40c50] code laten zien?...[/quote:1091a40c50] ;) Een probleem van je code is dat op het moment dat de dikgedrukte code wordt uitgevoerd de elementen nog niet bestaan (je krijgt waarschijnlijk ook een [i:1091a40c50]object required[/i:1091a40c50] achtige foutmelding). Nu is dat op zich nog wel op te lossen door het script-blok te verplaatsen naar een plek onder het form (of deze [i:1091a40c50]onload[/i:1091a40c50] uit te voeren), maar echt veel heb je daar niet aan aangezien het vastleggen van de waarde eenmalig is. Na een actie van een gebruiker wordt het nummer niet automatisch bijgwerkt. Dit laatste kan je bereiken door, zoals ik al in mijn eerdere voorbeeld aangaf, alles onder te brengen in een functie en deze functie [i:1091a40c50]onclick[/i:1091a40c50] aan te roepen vanuit een functie. Als ik je een tip mag geven. Probeer het principe eerst uit in een klein script en, wanneer je het principe van de event-handlers en functies begrijpt, vertaal het dan naar je uiteindelijke script. Opmerkingen bij je object-referentie probeersels: [b:1091a40c50]var nummer = document.all.('opwnummer').value[/b:1091a40c50] Je hebt een punt te veel na de [i:1091a40c50]all[/i:1091a40c50], maar eigenlijk zou ik deze methode willen afraden aangezien deze IE only is. [b:1091a40c50]// var nummer = document.getElementById('opwnummer');[/b:1091a40c50] Deze zal wel werken (mits het object bestaat) [b:1091a40c50]// var nummer = document.extrafunctie.opwnummer.value;[/b:1091a40c50] Deze zal wel werken (mits het object bestaat), maar waarom gebruik je niet mijn eerdere, volledigere voorbeeld? [i:1091a40c50]var nummer = document.forms["extrafunctie"].elements["opwnummer"].value;[/i:1091a40c50] p.s. Ik zie dat je werkt met het [i:1091a40c50]filesystemobject[/i:1091a40c50]. Je bent je ervan bewust dat dit eigenlijk alleen voor intranet-achtige toepassingen (lees: eigen gebruik of bedrijfsmatig in een afgeschermde omgeving) geschikt is?
  • Ik wil nog een keer het volledige script laten zien, inclusief veranderingen, want nou wordt de variabele "nummer "weer niet goed aangeropen, en kweet niet wrom niet... Ik doe er een deel bij uit het externe script, waar ik die variabele voor nodig heb... <html> <head> <base href="C:\TPS1.0.Opwekking\"></base> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <link rel="stylesheet" type="text/css" href="css/mainmenu.css"> <title>Hoofdmenu</title> <script language="JavaScript" src="setup.js"></script> <script language="JavaScript" src="C:/TPS1.0.Opwekking/songs/opw/songrecords-opw.js"></script> <script language="JavaScript" src="C:/TPS1.0.Opwekking/songs/opt/songrecords-opt.js"></script> <script language="JavaScript" src="C:/TPS1.0.Opwekking/songs/opk/songrecords-opk.js"></script> <script language="JavaScript" src="C:/TPS1.0.Opwekking/songs/ovg/songrecords-ovg.js"></script> <SCRIPT LANGUAGE="JavaScript"> <!-- Begin var p1 = '<tr><td width="15%" valign="top" align="left"> <a href="songs/'; var p2 = '</a></td><td width="85%" valign="top" align="left"> <a href="songs/'; var page="<html><head><title>Zoekresultaat liederen</title><link rel='stylesheet' type='text/css' href='css/songindex.css'></head><body oncontextmenu='return false' onselectstart='return false' leftmargin='0' topmargin='0'><table border='1' width='100%'><tr><td width='15%' valign='top' align='left'><b>Nr.</b></td><td width='85%' valign='top' align='left'><b>Titel</b></td></tr>"; [b:436ac95253]function ganaar() { var nummer = document.forms["extrafunctie"].elements["opwnummer"].value; var locatieO = 'songs/opw/' + opwSong['nummer'][0] + 'preview.htm'; var locatieT = 'songs/opt/' + optSong['nummer'][0] + 'preview.htm'; var locatieK = 'songs/opk/' + opkSong['nummer'][0] + 'preview.htm'; var locatieE = 'songs/ovg/' + opvSong['nummer'][0] + 'preview.htm'; } [/b:436ac95253] function search(frm) { var filename = installPath+'\\menu\\find.js'; var findContent = 'var searchString="'+frm+'"'; var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.CreateTextFile(filename, true); file.WriteLine(findContent); file.Close(); window.open("menu/search.htm","preview"); } function showPopup(form) { pu = window.open('black-low.htm','copyright','scrollbars=no'); var code ='<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><link rel="stylesheet" type="text/css" href="css/copyright.css"><META HTTP-EQUIV="refresh" CONTENT="10; url=style.htm"><title>Mededeling</title></head><body oncontextmenu="return false" onselectstart="return false"><center>'; pu.document.write(code + popbox.message.value + '</center>\n') } // End --> </script> </head> <body oncontextmenu='return false' leftmargin="12" topmargin="6" rightmargin="0"> <FORM Name="Song selection"> <INPUT TYPE="Button" Value="Vrije tekst invoer" style="width:180px;height:24px" onClick=window.open("input/textentry.htm","preview")><br> <br> <INPUT TYPE="Button" ACCESSKEY="0" Value="Opw001-050" style="width:90px;height:24px" title="Opwekking liederen 001 t/m 050" onClick=window.open("menu/opw001-050songindex.htm","preview")><INPUT TYPE="Button" Value="Opw051-100" style="width:90px;height:24px" title="Opwekking liederen 051 t/m 100" onClick=window.open("menu/opw051-100songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="1" Value="Opw101-150" style="width:90px;height:24px" title="Opwekking liederen 101 t/m 150" onClick=window.open("menu/opw101-150songindex.htm","preview")><INPUT TYPE="Button" Value="Opw151-200" style="width:90px;height:24px" title="Opwekking liederen 151 t/m 200" onClick=window.open("menu/opw151-200songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="2" Value="Opw201-250" style="width:90px;height:24px" title="Opwekking liederen 201 t/m 250" onClick=window.open("menu/opw201-250songindex.htm","preview")><INPUT TYPE="Button" Value="Opw251-300" style="width:90px;height:24px" title="Opwekking liederen 251 t/m 300" onClick=window.open("menu/opw251-300songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="3" Value="Opw301-350" style="width:90px;height:24px" title="Opwekking liederen 301 t/m 350" onClick=window.open("menu/opw301-350songindex.htm","preview")><INPUT TYPE="Button" Value="Opw351-400" style="width:90px;height:24px" title="Opwekking liederen 351 t/m 400" onClick=window.open("menu/opw351-400songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="4" Value="Opw401-450" style="width:90px;height:24px" title="Opwekking liederen 401 t/m 450" onClick=window.open("menu/opw401-450songindex.htm","preview")><INPUT TYPE="Button" Value="Opw451-500" style="width:90px;height:24px" title="Opwekking liederen 451 t/m 500" onClick=window.open("menu/opw451-500songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="5" Value="Opw501-550" style="width:90px;height:24px" title="Opwekking liederen 501 t/m 550" onClick=window.open("menu/opw501-550songindex.htm","preview")><INPUT TYPE="Button" Value="Opw551-600" style="width:90px;height:24px" title="Opwekking liederen 551 t/m 600" onClick=window.open("menu/opw551-600songindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="6" Value="Opw601-602" style="width:90px;height:24px" title="Opwekking liederen 601 t/m 602" onClick=window.open("menu/opw601-650songindex.htm","preview")><INPUT TYPE="Button" ACCESSKEY="o" Value="Opw-alles" style="width:90px;height:24px" title="Opwekking liederen 001 t/m 602" onClick=window.open("menu/opw-allsongindex.htm","preview")><br> <INPUT TYPE="Button" ACCESSKEY="t" Value="OpwTieners" style="width:90px;height:24px" title="Opwekking voor tieners liederen" onClick=window.open("menu/optsongindex.htm","preview")><INPUT TYPE="Button" ACCESSKEY="k" Value="OpwKinderen" style="width:90px;height:24px" title="Opwekking voor kinderen liederen" onClick=window.open("menu/opksongindex.htm","preview")><br> <INPUT TYPE="Button" Value="Overigen" style="width:90px;height:24px" title="Overige liederen" onClick=window.open("menu/ovsongindex.htm","preview")><INPUT TYPE="Button" Value="Alle songs" style="width:90px;height:24px" title="Lijst van alle beschikbare liederen" onClick=window.open("menu/allsongindex.htm","preview")><br> </FORM> [b:436ac95253]<form name="extrafunctie"> <input name="opwnummer" type="TEXT" id="opwnummer" style="width:180px;height:24px" value="001" maxlength="3"> <input type="submit" value="maak" style="width:45px;height:24px" name="maak" onClick="ganaar()"> <br> <input type="submit" value="O" style="width:45px;height:24px" name="typeO" onClick=window.open('locatieO',"preview")> <input type="submit" value="T" style="width:45px;height:24px" name="typeT" onClick=window.open(locatieT,"preview")> <input type="submit" value="K" style="width:45px;height:24px" name="typeK" onClick=window.open(locatieK,"preview")> <input type="submit" value="E" style="width:45px;height:24px" name="typeE" onClick=window.open(locatieE,"preview")> </form> [/b:436ac95253] <form method=get action="javascript:void(0)" onsubmit="txt=srchval.value;txt=txt.toLowerCase();search(txt); return false;"> <tr><td><input type="text" name="srchval" value="" style="width:180px;height:24px"><br><input type="submit" value="Zoeken in de titels" style="width:180px;height:24px"></td></tr> </form> <FORM Name="Screen selection"> <INPUT TYPE="Button" Value="Dimmen" style="width:80px;height:24px" onClick=window.open("fadeout.htm","copyright");window.open("fadeout.htm","display")><INPUT TYPE="Button" Value="Welkom" style="width:100px;height:24px" onClick=window.open("messages/welkom.htm","display")><br> <INPUT TYPE="Button" Value="Koffie" style="width:80px;height:24px" onClick=window.open("messages/koffie.htm","display")><INPUT TYPE="Button" Value="Mededelingen" style="width:100px;height:24px" onClick=window.open("messages/messages.htm","display")><br> <INPUT TYPE="Button" Value="Sneltoetsen instellen" style="width:180px;height:24px" onClick=window.open("menu/setuptopmenubuttons.htm","preview")><br> <INPUT TYPE="Button" Value="Systeem Menu" style="width:180px;height:24px" onClick=window.open("system/systemmenu.htm","preview")><br> <INPUT TYPE="Button" Value="Display Slides" style="width:180px;height:24px" onClick=window.open("menu/displayslides.htm","preview")><br> </FORM> <form Name="popbox" onsubmit="txt=message.value; showPopup(txt); return false;"> <INPUT type="text" name="message" value="" style="width:180px;height:24px"><br> <INPUT type="button" value="Oproepvenster" style="width:180px;height:24px" onClick=showPopup(message.value)><br> </form> <center><img border="0" src="images/opwekklein.gif"></center> </body> </html> Uit het externe script songs/opw/songrecords-opw.js: [code:1:436ac95253]// Create main array for songs. var opwSong = new Array() // Add song data records. // Definition is as follows: // opwSong[c] = new Array("songLabel", "songTitle", "firstLine") // var c = -1 c++; opwSong[c] = new Array("leeg", "leeg", "leeg") c++; opwSong[c] = new Array("opw001", "titel1", "") c++; opwSong[c] = new Array("opw002", "titel2", "") [/code:1:436ac95253]
  • Dat het voor lokaal gebruik alleen geschikt is maakt niet uit, want dit is eigenlijk een programma, bestaande uit alleen maar: HTML, JS, CSS...
  • [quote:10a17fe481="ANNErd"]Ik wil nog een keer het volledige script laten zien, inclusief veranderingen, want nou wordt de variabele "nummer "weer niet goed aangeropen, en kweet niet wrom niet... [/quote:10a17fe481] Je gebruikt niet de variabele [i:10a17fe481]nummer[/i:10a17fe481] als index voor de array, maar de string-waarde "nummer". Wijzig je code naar: [code:1:10a17fe481] var locatieO = 'songs/opw/' + opwSong[nummer][0] + 'preview.htm'; [/code:1:10a17fe481] En dan werkt dat stukje wel. Maar een ander iets wat ik over het hoofd heb gezien is dat je de waarde uit de text-input (dat is een string) gebruikt als index voor een array. En omdat javascript deze niet automatisch cast naar een numerieke waarde (integer) moet je dat nog even zelf doen. Je krijgt anders de waarde van het array item [i:10a17fe481]opwSong["001"][0][/i:10a17fe481] en dat is wat anders dan [i:10a17fe481]opwSong[1][0][/i:10a17fe481]. Casten naar int doe je met [url=http://www.devguru.com/Technologies/ecmascript/quickref/parseint.html]parseInt()[/url]. Let daarbij op dat je [b:10a17fe481]altijd [/b:10a17fe481]de radix meegeeft om omgewenste effecten te vermijden. Strings die starten met [u:10a17fe481]0[/u:10a17fe481] worden automatisch geinterpreteerd als octaal en strings die starten met [u:10a17fe481]0x[/u:10a17fe481] als hexadecimaal. En jij wil naar het decimale stelsel.
  • EUREKA...!!! Sorry Annie: [code:1:9441625f83] <form name="extrafunctie"> <input name="opwnummer" type="TEXT" id="opwnummer" style="width:180px;height:24px"> <br> <input type="button" value="O" onclick="previewWindow('opw')" style="width:40px;height:24px"> <input type="button" value="T" onclick="previewWindow('opt')" style="width:40px;height:24px"> <input type="button" value="K" onclick="previewWindow('opk')" style="width:40px;height:24px"> <input type="button" value="E" onclick="previewWindow('ovg')" style="width:40px;height:24px"> </form> <script type="text/javascript"> function previewWindow(sPath) { var sNumber = document.forms["extrafunctie"].elements["opwnummer"].value; // voorloopnullen toevoegen sNumber = "000".substring(sNumber.length) + sNumber; var sLocation = 'C:/TPS1.0.Opwekking/songs/' + sPath + '/' + sPath + sNumber + 'preview.htm'; window.open(sLocation, 'preview'); } </script> [/code:1:9441625f83] zeer kleine aanpassing, maar jij had het vanaf je eerste reactie al goed!!! Om de een of andere reden over het hoofd gezien... :D :D :D PLUIMPJE VERDIENT :D :D :D
  • [quote:1436dcd86b="ANNErd"]PLUIMPJE VERDIENT[/quote:1436dcd86b] pluimpje ontvangen, dank je. :)
  • Deze Expansionset is klaar, maar ik wil dur nog wat bij doen: Als je in een veld Begint met typen, wil ik dat ie automatisch wordt aangevuld, net zoals bij Excel: Al je daar eerst een zin in tikt, en dan in een cel eronder een zin die met dezelfde letters begint, komt er automatisch de volledige zin te staan. Als je dan op enter drukt, komt dezelfde zin er te staan... Kan dit ook met JS?
  • Ik denk dat je met wat creatief scripten een heel eind kan komen, maar dat is wel iets wat wel eens flink wat tijd kan gaan kosten. Je zou ook eens kunnen rondzoeken op internet of er scripts zijn die in de buurt komen van wat je wil. Als je zelf aan de gang wil dan zal je je wat moeten verdiepen in de key events (onkeydown) en iets moeten verzinnen waarin je de "woordhistory" (eerdere invoer) bijhoudt of je moet telkens de waarden van de overige form-elementen langslopen. De value van het invoerveld waar de gebruiker bezig is kan je dan telkens bijwerken met een value uit de "history" die er dicht bij komt.
  • is het mogelijk dat ik een lijst maak met de gegevens, dmv <select> en dat ik met een invulvak de eerste 3(?) letters invul en dat die lijst bij elke letter meespringt?
  • [quote:de9a30e710="ANNErd"]is het mogelijk dat ik een lijst maak met de gegevens, dmv <select> en dat ik met een invulvak de eerste 3(?) letters invul en dat die lijst bij elke letter meespringt?[/quote:de9a30e710] Ja dat is mogelijk. Heb zoiets dergelijks al ooit gemaakt. Een tip: laat het verspringen van naar het juiste item niet real-time gebeuren. Als je snel de eerste X letters wil intoetsen wordt je gek van het wachten op de functie die het verspringen van de selectbox regelt (bij grotere lijsten is de vertraging merkbaar). Het idee is: [code:1:de9a30e710] onkeydown op de text input - bestaat er al een timeout? zo ja, verwijderen - een nieuwe timeout zetten (beetje spelen met de juiste vertraging) functie die in de timout wordt aangeroepen vergelijkt de waarde van de text input met de option-list [/code:1:de9a30e710] Voorwaarde is dan wel dat je je items in de SELECT gesorteerd hebt geplaatst. Doe je dat niet dan kan je beter in je "search" functie een gesorteerde kopie van je options-collectie gebruiken om niet telkens de options te hoeven sorteren.
  • en hoe kan ik dan de waarde van 't invulvak, vergelijken met alle waarden in de select??? of hoe werkt dat search?
  • Een beetje zelf experimenteren kan ook geen kwaad! ;) - Bas
  • De "search" functie is de functie die je zelf zal moeten schrijven. Hiermee bedoelde ik dus geen bestaande javascript functionaliteit. Om te vergelijken zal je door de lijst met select-options moeten lopen ([url=http://www.devguru.com/Technologies/ecmascript/quickref/for.html]for lus[/url]) en telkens de waarde van het inputveld vergelijken met de waarde van de select option. Heb effe een voorbeeldje voor je gezocht: http://gathering.tweakers.net/forum/list_message/19692850#19692850 Mag je zelf uitzoeken hoe je dit implementeert in jouw gewenste situatie en hoe je de functie wil triggeren (onchange, onkeydown). Moet wel lukken.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.