• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

javascript problem

bengaltiger

Neues Mitglied
hallo

ich hab eine javascript funktion gebastelt
sie funktioniert wenn es folgendermaßen aussieht

die php datei das die variable enthält

PHP:
<?php

$color=array('RED','BLUE','WHITE');
$arr=implode("','",$color);
require_once('test.html');

?>
hier test.html
HTML:
<script type="text/javascript">
function validation(id){
ok=false;
values=new Array('<?php echo($arr);?>');
inO=document.getElementById(id);
inputvalue=inO.value.toUpperCase();
for(i=0;i<values.length;i++){
    if(values[i]==inputvalue){
        ok=true;
    }
}
inO.style.background='lime';
if(!ok){
    inO.style.background='pink';
}
return ok;
}
</script>
</head>

<body>
    <input id="color" type="text" onkeyup="validation('color')" value=""/>&nbsp;
  <button>Go!</button>
</body>

aber wenn ich den script in eine extra datei anlege geht es nicht (nur wenn man "red" eingibt funzt es)

HTML:
<script src="validation.js" type="text/javascript">
</script>
</head>

<body>
    <input id="ans" type="text" onkeyup="validation('ans','<?php echo($arr);?>')" value=""/>&nbsp;
  <button>Go!</button>
</body>
die js datei
HTML:
function validation(id,variable){
ok=false;
values=new Array(variable);
inO=document.getElementById(id);
inputvalue=inO.value.toUpperCase();
for(i=0;i<values.length;i++){
    if(values[i]==inputvalue){
        ok=true;
    }
}
inO.style.background='lime';
if(!ok){
    inO.style.background='pink';
}
return ok;
}

für einen erfahrenen denk ich ich es einfach
hab viel rumprobiert finde keine lösung dafür :(


bin dankbar für hilfen :D
 
Schau dir mal den im Browser angezeigten HTML-Code an. Ich tippe darauf, dass es hier einen JavaScript-Fehler bei dem Input-Element gibt.
 
hast recht
es sieht so aus

<input id="ans" type="text" onkeyup="validation('ans','RED','BLUE','WHITE')" value=""/>

müsste die kommas entfenen..ich diese jetzt mit "-" ersetzte damit ich es in der funktion mit '",'" ersetzen kann

jetzt sieh es so aus

function validation(id,variable){
ok=false;
variable='"'+variable.replace(/-/g,'","')+'"';
values=new Array(variable);
inO=document.getElementById(id);
inputvalue=inO.value.toUpperCase();
for(i=0;i<values.length;i++){
if(values==inputvalue){
ok=true;
}
}
inO.style.background='lime';
if(!ok){
inO.style.background='pink';
}
return ok;
}
klappt trotdem net obwohle jetzt variable am ande so aussieht:"RED","BLUE","WHITE"
geht es nicht aber wenn ich bei values=new Array("RED","BLUE","WHITE"); einfüge klappt es
ich versteh es nicht...

hilfeeeeeeeeee
 
Du müsstest den HTML-Code so aussehen lassen:

HTML:
<input id="ans" type="text" onkeyup="validation('ans','\'RED\'\,'BLUE\',\'WHITE\'')" value=""/>

Das erreichst Du wenn Du den PHP-String entsprechend maskierst. Achte darauf den String dann dennoch mit einfachen ' zu umgeben (siehe Code). Dann kannst Du diesen String auch als solchen an die JavaScript-Funktion übergeben und dort zu einem Array "umformen".
 
Zurück
Oben