PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript: Funktionsparameter


Marscel
2005-08-26, 19:01:31
Ich will eine Funktion bauen, die es ermöglichen soll, in einem bestimmten Formular ein bestimmtes Feld zu aktivieren.

Das Script sieht bis jetzt so aus:
function enableField(form, field)
{
//alert(field);
document.form.field.disabled=false;
}

Wenn ich das so aufrufe:
<form action="?" method="post" name="form1">
...
< ... onClick="enableField(form1, submit)" ...>
...
< ... name="submit" ... >


Sollte er eigentlich den Button mit dem Namen "submit" im Formular "form1" aktivieren, aber leider funktioniert das nicht, der IE meckert beim Klicken aber u.A:
'document.form.field' ist kein Objekt oder Null

Da werden die Parameter von der Funktion nicht richtig geschluckt oder sind im falschen Type (keine Objekte).

Wie macht man das richtig?

Gast
2005-08-26, 19:24:24
welchen Namen hat denn das Feld, das du aktivieren möchtest? Also name="" Attribut?

document.getElementsByName(field)[0].disabled = false;


So wie du das machst sucht er nach einem Objekt namens "field"


Abgesehen davon greifst du auf "form" zu, also generell alle Formulare. Da müßte wennschon dennschon form1 stehen. ;)

Marscel
2005-08-26, 19:34:34
welchen Namen hat denn das Feld, das du aktivieren möchtest? Also name="" Attribut?

Wie ich sagte, das Feld, das ich deaktivieren möchte heißt "submit" (name="submit"), das seinerseits im Formular "form1" steckt.

document.getElementsByName(field)[0].disabled = false;

Funktioniert auch nicht.

So wie du das machst sucht er nach einem Objekt namens "field"

Ich gedachte eigentlich, dass er "field" als Parameter übernehmen würde,
denn

field.disabled = false;

funktioniert! Nur kann ich dann nicht sagen, in welchem Forumlar der Button aktiviert wird.

Abgesehen davon greifst du auf "form" zu, also generell alle Formulare. Da müßte wennschon dennschon form1 stehen. ;)

Auch hier wieder ein Parameter, der durch das
onClick="enableField(form1,...)" ja definiert werden sollte.

Gast
2005-08-26, 19:46:33
Auch hier wieder ein Parameter, der durch das
onClick="enableField(form1,...)" ja definiert werden sollte.
Öhm. Nenn das in der Funktion ma anders.

myForm und myField.

Marscel
2005-08-26, 19:55:33
myForm und myField.

Funktioniert leider auch nicht.

Sphinx
2005-08-26, 22:09:32
<script type="text/javascript">

function enableField() {
document.getElementById('add').disabled=true;
}

</script>


onclick="enableField()"


<input type="submit" value="Submit News" id="add" name="add" />

Marscel
2005-08-27, 00:00:34
Ich wollte eigentlich eine Funktion, die man so flexibel wie möglich nutzen kann, aber du hast mich auf eine Idee gebracht, die ich ausprobieren werde.

Aqualon
2005-08-27, 10:41:48
Falls das OnClick zufällig in einem option-Tag definiert ist, das mag der IE nicht und ignoriert es einfach.

Aqua

Sphinx
2005-08-27, 11:28:15
Falls das OnClick zufällig in einem option-Tag definiert ist, das mag der IE nicht und ignoriert es einfach.

Aqua

^^ Dies habe ich dann im select-Tag "onchange" gelöst ~ abfrage des wertes mit "this.options[this.selectedIndex].value" wenn(if) Wert gegeben führe Funktion aus
so gelöst.

<select onchange="if (this.options[this.selectedIndex].value=='2005') {FuntionSet('italictxt','I');}">
<option...

Marscel
2005-08-27, 12:19:06
Falls das OnClick zufällig in einem option-Tag definiert ist, das mag der IE nicht und ignoriert es einfach.

Nein, das ist in nem Input-Tag.