Text en value van een select inlezen in een input veld

Status
Niet open voor verdere reacties.

Cheld

Gebruiker
Lid geworden
22 aug 2008
Berichten
7
Hoi,

Ik heb een javascriptje gemaakt waarbij de value en text door andere velden worden uitgelezen.
Het scriptje werkt op zich prima, maar om onverklaarbare reden wordt af en toe de index van de select list niet meer herkend. Pas wanneer ik een recycle doe van de application pool van de website in IIS, werkt het scriptje weer. Komt iemand dit bekend voor en/of weet iemand een oplossing. Ik kan hier namelijk verder niets over vinden. :(

Zie hieronder het scriptje+form en de foutmelding:

Chris



Script:

Code:
<script language="javascript">
function showOption() {
var index = document.getElementById("aanmaancategorie").selectedIndex;
var selected = document.getElementById("aanmaancategorie").options[index].text;
var text = document.getElementById("textcategorie").value = selected;
aanmaanmnd.value=aanmaancategorie.value
}
</script>

      <select class="forminput" NAME="aanmaancategorie" id="aanmaancategorie" onChange="showOption();">
        <option>--kies een categorie--</option>
        <option value="3 maanden" title="piet">Bezwaar aantal</option>
        <option value="3 maanden">Bezwaar bedrag</option>
        <option value="3 maanden">Peiljaarverlegging</option>
        <option value="3 maanden">Bezwaarschrift</option>
        <option value="6 maanden">Klachten</option>
        <option value="">Uitstel van betaling (max. 3)</option>
        <option value="">Betaalregeling</option>
        <option value="3 maanden">Adres onderzoek</option>
        <option value="">Verzoek info (max. 3)</option>
        <option value="4 maanden">Overlijden</option>
        <option value="">Schuldsanering/WSNP</option>
        <option value="3 maanden">NAW aanpassing</option>
        <option value="">Incassobureau</option>
      </select>

      <input type="text" class="dynamicinput" NAME="aanmaanmnd" id="aanmaanmnd" style="text-align:center;"/>

<input type="text" name="textcategorie" id="textcategorie"/>


Fout:

Code:
document.getElementById("aanmaancategorie").options0 is undefined
[Break on this error] var selected = document.getElementById("aanmaancategorie").options0.text;
 
En als je de nul overslaat:
Code:
function showOption() {
	var index = document.getElementById("aanmaancategorie").selectedIndex;
	if (index > 0) {
		var selected = document.getElementById("aanmaancategorie").options[index].text;
		var text = document.getElementById("textcategorie").value = selected;
		aanmaanmnd.value=aanmaancategorie.value
	}
}
 
de options[selectedIndex] moet altijd gedefinierd zijn, behalve als er geen selectie is. Maar aangezien je in the onchange event zit is het onmogelijk dat er geen selectie is.

options[0] is trouwens altijd gedefinierd wanneer er ten minste één element is. Wat je wel kunt doen is voor de zekerheid checken of
selectedIndex >= 0 en selectedIndex < options.length

Maar eerlijk gezegd lijkt dat me overbodig wanneer je in de onchange de selectie wilt lezen. Aan je script valt niks fouts te ontdekken. Het werkt bij mij ook vlekkeloos, en ik ben twee keer alle opties langs gegaan in IE7 en FF3.

Welke browser gebruik je? Krijg je het probleem met de code die je gaf in een html bestandje, of alleen als het op je site staat met veel meer elementen en msschn javascript?

Als niks werkt kun je het tussen try...catch blokjes zetten en de gebruiker informeren om de pagina te herladen of iets dergelijks.
 
Hmmm daar was ik al een beetje bang voor ;)
Problemen zoals deze zijn de rottigste...

@Glest: Ik ga nog even proberen om dit item in een losse html te zetten binnen de site. Mijn voorbeeld wordt vanuit een CMS (lees Smartsite) gerenderd, maar wel met een leeg template. Dus in feite zou het zich het zelfde moeten gedragen, maar je weet maar nooit! Bedankt voor de tip!
Ik gebruik hier FF3, IE6 en IE7 by the way...

Edit: Het meest vreemde vergat ik nog te vermelden: Ik gebruik het script 3 keer op totaal verschillende plekken in de site. En het is nooit 1 script dat niet meer werkt, maar altijd alle 3. Ik dacht in eerste instantie dat het iets was met IIS, maar ik vraag me af waarom het dan alleen bij deze fucntie optreedt en niet bij andere??
 
Laatst bewerkt:
Probleem is inmiddels opgelost. Om kort te gaan:
Het CMS waar ik dit in gebruikte kende [index] (met blokhaken en al) blijkbaar als een soort systeemvariabele. Heb een andere variable name gebruikt voor index en... opgelost. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan