ik heb een scripje dat afbeelding laad aan de hand van de cijfers die zijn ingevoerd in een textvak. Dit werkt uitstekend!
Aangezien ik mijn formulieren met de class formhandler maak probeer ik het hier ook werkend in te krijgen, maar dit lukt niet.
ik heb het idee dat het scripje bij onkeyup niet wordt aangeroepen.
maar wat hiervan de oorzaak is daar kan ik niet achter komen.

dit is wat ik werkend heb:

<script type="text/javascript"> 

function plaatje(e, id){ 
var dir = "images/"; 
var ext = ".JPG"; 
if(e.value.length > 3 && e.value >= 1600 && e.value <= 1605){document.getElementById(id).src = dir + e.value + ext;} 
if(e.value.length <= 3 && e.value < 1600 ){document.getElementById(id).src = dir + 'error.gif';} 
} 

</script> 

<input type="text" name="tekst" onkeyup="plaatje(this, 'mijnplaatje')" size="4" maxlength="4" /> 
<img src="images/error.gif" id="mijnplaatje" /> 

<input type="text" name="tekst" onkeyup="plaatje(this, 'mijnplaatje2')" size="4" maxlength="4" /> 
<img src="images/error.gif" id="mijnplaatje2" /> 

<input type="text" name="tekst" onkeyup="plaatje(this, 'mijnplaatje3')" size="4" maxlength="4" /> 
<img src="images/error.gif" id="mijnplaatje3" /> 


en dit is wat ik met formhandler heb gemaakt maar niet af krijg.
kan iemand misschien kijken wat ik fout heb gedaan? of iets wat ik zou kunnen proberen?

<head> 
<script type="text/javascript"> 

function plaatje(e, Id){ 
var dir = "../images/"; 
var ext = ".JPG"; 
if(e.value.length > 3 && e.value >= 1600 && e.value <= 1605){document.getElementById(idsrc = dir + e.value + ext;} 
if(e.value.length <= 3 && e.value < 1600 ){document.getElementById(id).src = dir + 'error.gif';} 
} 

</script>
</head> 



<?php 

// include the class 
include("../FH3/class.FormHandler.php"); 

// create a new FormHandler object 
$form =& new FormHandler(); 

// some fields.. (see manual for examples) 
$form->textField( "test", "test", 0 , 4, 4, 'onkeyup="plaatje(this, "mijnplaatje")"' ); 
// addHTML 
$form -> addHTML( 
  "    <img src='../images/error.gif' id='mijnplaatje'/ >" 
); 


// set the 'commit-after-form' function 
$form->onCorrect('doRun'); 

// display the form 
$form->flush(); 

// the 'commit-after-form' function 
function doRun( $data ) 
{ 
    echo "Hello ". $data['test'].", you are ".$data['test'] ." years old!"; 
} 

?>
hea :S wat vreemd.... heeft het dan te maken browser compatibaliteit
ik heb hem in IE getest maar zie niks!
welke browser gebruik jij?
iemand een idee hoe ik het dan ook in IE werkend kan krijgen?
Aah ik zie het al. Je vraagt [select].value op, maar het select-element zelf heeft geen value. De opties wel. Sommige browsers rekenen dan automatisch de value van het select-element uit op basis van de geselecteerde optie, anderen laten dat aan jou over.

Vervang:
$form -> selectField("numflowers", "numflowers", $numflowers, FH_NOT_EMPTY, 0, 0, 1, 'onChange="javascript: ShowMenu(document.getElementById(\'numflowers\').value,\'divColor\', 2);"');

eens door

$form -> selectField("numflowers", "numflowers", $numflowers, FH_NOT_EMPTY, 0, 0, 1, 'onChange="javascript: ShowMenu(this.options[this.selectedIndex].value,\'divColor\', 2);"');


Zie voor meer informatie deze pagina op Quirksmode.

hmmm dit werkt nog niet kga morgen nog maar eens verder kijken
ik ben er inmiddels achter waarom het niet werkte,
er was een tabel niet goed afgesloten waardoor de de divjes niet konden worden weergegeven.
bedankt voor jullie reacties!!!!

Reageren