wieso "this.form.submit()" ?

Soapp

Erfahrenes Mitglied
Hi Profis,

ich habe eine Form mit einer Dropdownbox

In der steht

PHP:
<form name="form340" method="post" action="<?=$_SERVER['PHP_SELF']; ?>" >
<select name="dropdown" onChange="this.form.submit();">
.......
</select>
</form>

Das verwirrt mich etwas. Ich könnte da auch "form340.submit()" reinschreiben.
Ich glaube das würde auch funktionieren.
Wenn ich eine FUnktion schreiben würde, wie würde die aussehen ?
Würde das folgende funktionieren ?

PHP:
function sub (obj)
{
obj.submit;
}

<select name="dropdown" onChange="sub(this)">

Also zusammengefasst, blick ich glaube ich nicht so recht durch, was dieses
"this" zu bedeuten hat.
Wieso heisst es einmal "this.form.submit" und einmal nur "form346.submit" ?
Vielen Dank für Nachhilfeunterricht :)


Soapp
 
Also wenn ich das richtig verstehe willst du beim Wechsel im Dropdown die Form abschicken?

HTML:
 onChange="submit();"
reicht da vollkommen aus

Kurz zur Erklärung von this:

Wenn dein Select-Feld so aufgebaut ist:
HTML:
<select name="meinselect" onchange="alert(this.name);">
Bekommst du eine Textbox mit dem Inhalt "meinselect".

this bezieht sich also immer auf das Object, in dem es steht. this (dieses) eben

Aller klar?
 
DaveDamage hat gesagt.:
Also wenn ich das richtig verstehe willst du beim Wechsel im Dropdown die Form abschicken?

HTML:
 onChange="submit();"
reicht da vollkommen aus

Kurz zur Erklärung von this:

Wenn dein Select-Feld so aufgebaut ist:
HTML:
<select name="meinselect" onchange="alert(this.name);">
Bekommst du eine Textbox mit dem Inhalt "meinselect".

this bezieht sich also immer auf das Object, in dem es steht. this (dieses) eben

Aller klar?


Danke ...

Aber warum funktioniert dann auch "this.form.submit()" ?
Und "this.form.submit()" findet man in vielen Scripten ....


Wenn "this" der Name der Select-Box ist, dann wäre ja "this.form.submit()"
gleich "meinselect.form.submit()" und das wäre ja irgendwie Blödsinn ..

verstehst du was ich meine ?


Danke

Soapp
 
Das ist ne Eigenart, die mir letztens in Java so ähnlich aufgefallen ist und in JavaScript müsste es genauso sein...

Alle Objecte haben ja Attribute, wie du weißt (name, id, size, etc) und dann gibt es noch Attribute, die man normalerweiße net benutzt.
"Form" ist zB so ein Attribut. Damit du immer lesen kannst zu welcher Form ein Form-Element gehört, wird in diesem Attribut ein Verweis auf das "Elternformular" gelegt. Somit kannst du auf alle Funktionen zugreifen, die die Form hat.

Falls ich da falsch liege kann mich gern jemand korrigieren...

Is bisschen doof das ganze zu erklären, stell dirs einfach wie ne Vater (Form) - Kind (Formelement) Beziehnung vor. Der Vater kennt natürlich seine Kinder und das Kind kennt seinen Vater. Wenn das Kind also was vom Vater will, macht der das ^^
 
DaveDamage hat gesagt.:
Das ist ne Eigenart, die mir letztens in Java so ähnlich aufgefallen ist und in JavaScript müsste es genauso sein...

Alle Objecte haben ja Attribute, wie du weißt (name, id, size, etc) und dann gibt es noch Attribute, die man normalerweiße net benutzt.
"Form" ist zB so ein Attribut. Damit du immer lesen kannst zu welcher Form ein Form-Element gehört, wird in diesem Attribut ein Verweis auf das "Elternformular" gelegt. Somit kannst du auf alle Funktionen zugreifen, die die Form hat.

Falls ich da falsch liege kann mich gern jemand korrigieren...

Is bisschen doof das ganze zu erklären, stell dirs einfach wie ne Vater (Form) - Kind (Formelement) Beziehnung vor. Der Vater kennt natürlich seine Kinder und das Kind kennt seinen Vater. Wenn das Kind also was vom Vater will, macht der das ^^


aha .. this.form hat dann sozusagen eine Sonderstellung und heisst dann auf deutsch soviel wie "diese Form" ;-)

verstehe ...

Danke
 
Zurück