Eingabe Textfeld überprüfen IE/Opera

jenno

Erfahrenes Mitglied
Hallo Leute,

vielleicht sehe ich einfach nichts mehr, vielleicht könnt ihr mir helfen.

Ich habe ein Formular, das heisst "aangifte_01". In diesem Formular gibt es ein input-Feld

Code:
<input type="text" value="BakerWare BV" name="naam_1_1" style="width:200px"/>

dass ich auf den value überprüfen möchte.

Hierzu habe ich eine JavaScript Funktion geschrieben:

Code:
function hasValue(formName, elName) {
	var el = eval("document."+formName+"."+elName);
	if(el.value == "") {
		return false;
	}
	return true;
}

Wenn ich das Formular abschicke, wird diese Funktion aufgerufen. Im Falle meines hier aufgeführten Textfeldes auf diese Weise:

Code:
if(!hasValue('aangifte_01', 'naam_1_1')) {
...
}

So wie ich es hier gezeigt habe, hat dieses Textfeld schon einen Wert, nämlich "BakerWare BV". Und jetzt kommts:

Im Internet Explorer wird es auch genau so erkannt und die if-Bedingung nicht durchlaufen.
Opera allerdings sieht den Wert "BakerWare BV" nicht und tut so, als wäre das Textfeld leer.

Ich hoffe, viele Augen sehen in diesem Falle mehr als zwei!

Grüsse!
 
Code:
var el = eval("document."+formName+"."+elName);
Was ist das?

Wieso nicht einfach so:
Code:
function hasValue(a_sForm, a_sElement)
{
    return window.document[a_sForm][a_sElement].value != "";
}
 
Okay, das ist schöner, ich habs auch schon übernommen. Das löst jedoch mein Problem noch nicht. Aus irgendeinem Grunde liefert mir die Funktion ein false zurück, obwohl dieses Textfeld mit value="BakerWare BV" gefüllt ist.
Allerdings, wie gesagt, nur im Opera Browser...
 
richtig angesprechen sollte man im Bsp. das Formularfeld mit:
Code:
document.forms[a_sForm].elements[a_sElement];
So läuft es dann auch in Opera:
Code:
<script type="text/javascript">
<!--
function hasValue(formName, elName)
{
return formName.elements[elName].value != "";
}
//-->
</script>
<!-- .... -->
<form onsubmit="return hasValue(this,'naam_1_1');">
 

Neue Beiträge

Zurück