Zum Inhalt springen

Problem mit PhP und JavaScript im Internet Explorer


Empfohlene Beiträge

Guten Morgen miteinander,

ich habe folgendes Problem:

Ich habe eine Seite programmiert, die soweit einwandfrei funktioniert- sollte man meinen ;)

Im FireFox, Opera und Co funktioniert alles einwandfrei. Nur, wie soll es auch anders sein, im Internet Explorer funktionieren 2 Dinge nicht.

Nachdem ich schon mit meinem Ausbilder geguckt habe, und selber seit Montag am tüfteln bin, wollte ich jetzt einfach mal hier fragen- ich komme absolut nicht mehr weiter.

Wir nutzen PhP Version 5.2.5.

Da es ein Betriebsinternes Tool wird, auch noch den Standard hier:

Internet Explorer 6 (damit teste ich auch)

Die 2 Probleme:

1.) Ich habe eine kleine JavaScript Funktion geschrieben, um bei einem Klick auf eine Checkbox ein Feld an zuzeigen, bzw. zu verstecken. Aufgerufen wird diese Funktion bei „onChange“.

Im Internet Explorer ist das aber so:

Ich klicke auf die checkbox… Nichts passiert. Ich klicke irgendwo anders hin, auf der Seite selbst natürlich, und die JavaScript Funktion wird ausgeführt. Zugegeben, ich kenne mich mit JavaScript nicht so gut aus.

Liegt das am Event Handler, oder worauf muss ich genau achten?

Oder darf man einfach keine Checkbox nehmen? Das kam so vom „Auftraggeber“, dass ich es machen muss- gibt es hierbei einen anderen/ besonderen/ bestimmten Event Handler, damit es funktioniert?

Die Teile (ich will nicht das „ganze“ script zeigen, weil das einfach zu lang wäre) sehen so aus:

Es ist von der Position her auch so im Script zu finden, versteht sich (sprich, die Funktion ist definitiv vorhanden- ansonsten würde FireFox das ja auch falsch machen).


<script language="javascript">

function changing()

{

  for(var i = 0; i<=1;i++)

  if(document.erschaffen.stat.checked == false)

  {

    document.getElementById('dauer').style.display='none';

  }


  if(document.erschaffen.stat.checked == true)

  {

    document.getElementById('dauer').style.display='block';

  }

}

</script>


<input type="checkbox" name="stat" value="Administrator" onChange="changing()" tabindex="6"> Administrator


<div id="dauer" style="display: none;">

  <input type="text" value="LDAP Name" tabindex="7" readonly>

  <input type="text" name="kuerzel" value="" tabindex="8">

  <br><br>

</div>

2.) Wenn ich mich zum Beispiel auf meiner Seite einlogge und dann auf den submit Button klicke wird dieser noch mit „verarbeitet“. Wenn ich allerdings mit Enter abschicke, dann „bemerkt“ die Seite den submit Button scheinbar gar nicht, und schickt das ganze dann, ohne den submit button ab.

Da die Funktionen fast alle darauf aufbauen, dass eben ein submit button (bzw. ein bestimmter- halt von Funktion zu Funktion unterschiedlich) existent ist/ benutzt wurde (also isset() ), wird dann natürlich nichts ausgeführt.

Komischerweise ist das nur bei einem einzigen Button so. Irritierend an der Sache ist, dass alles wie immer ist. Mein Ausbilder findet soweit auch keinen Fehler und die anderen Kollegen hier finden ebenfalls keinen Fehler, und können sich das nicht erklären (vorallem, weil es ja an anderen Stellen klappt).

Ich freue mich über jede Hilfe und eine eventuelle Erklärung dazu (damit ich auch erklären kann, warum etwas so klappt und nicht so. Kommt ja immer gut :) ).

Vielen dank für jede Hilfe.

Mit freundlichen Grüßen,

Cryver

P.S.: Hoffe, es ist soweit alles verständlich, und es besteht kein Fehler.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also zu deinem ersten Problem: Der ie behandelt ein onChange bei Checkboxen wie ein blur. Deshalb reagiert es erst wenn du woanders hin klickst.

Evtl. funktioniert onClick besser. Sollte zumindest den selben Effekt haben wie onChange bei einer Checkbox ;P

Zu deinem zweiten Problem:

Was für einen Button nutzt du denn? Ein input type='submit' oder ein input type='button'? Oder nur einen Link der als Button fungiert?

Je nach dem kannst du das enter drücken(onSubmit) abfangen und den button per JS selber 'betätiegen'.

Bearbeitet von Lucius
Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

habe das eben mal mit einem FF 3.0.14 und einem IE 8.0 probiert. IE 6 habe ich nicht mehr, aber das von dir beschriebene Phänomen tritt auch in Version 8 auf. Es liegt offenbar daran, dass der IE den Event onChange erst beim verlassen des Felds auslöst.

Da es eine Checkbox ist, kannst du aber ebenso gut onClick benutzen, das geht in beiden Browsern.

hth

Reinhold

PS: *aaaargh* da war einer schneller

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Lucius, Reinhold, hat prima geklappt :)

edit:

(...)

Zu deinem zweiten Problem:

Was für einen Button nutzt du denn? Ein input type='submit' oder ein input type='button'? Oder nur einen Link der als Button fungiert?

Je nach dem kannst du das enter drücken(onSubmit) abfangen und den button per JS selber 'betätiegen'.

Also, es ist ein input type="submit", aye (ich hab immer nur die Bezeichnung "submit-Button" gehört, gibt es eine andere/ korrektere?).

Ich schau mir aufjedenfall mal "onSubmit" an. Vielleicht klappt das ja so.

Bearbeitet von Cryver
Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Bezeichnung Submit Button ist ja auch richtig, nur lieber nachfragen bevor man von 2 verschiedenen dingen redet. Es gibt auch Leute die sagen submit button und haben dann nen link mit onclick='form.submit()' oder sowas drin ;P

Auf jeden Fall ist dein Problem das der IE einen Submit Button nicht übergibt wenn du enter drückst ausser der Submit Button hat den focus. Dann drückst du per enter den Button und löst nicht direkt das submit event aus.

Wieso benötigst du überhaupt unbedingt Daten die im button übergeben werden? Kann dir da ein hidden Feld nicht weiter helfen?

Bearbeitet von Lucius
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich ehrlich sein soll, hab ich an diese Möglichkeit gar nicht gedacht (also die mit dem hidden Feld). Das könnte ich auch machen.

Die Daten bräuchte ich (bzw. "spezifische" Daten wie z.B. den einzigartig benannten submit Button) um eine Funktion auszuführen. Allerdings kann ich das auch mit dem hidden Feld machen, so bräuchte ich den submit button nicht.

Allerdings, weiß jemand, warum der submit Button nicht erkannt wird? Mein Auftraggeber wird zwar nicht bemerken, dass der Submit Button nicht mitgesendet wird, jedoch bin ich trotzdem neugierig, um ehrlich zu sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Allerdings, weiß jemand, warum der submit Button nicht erkannt wird? Mein Auftraggeber wird zwar nicht bemerken, dass der Submit Button nicht mitgesendet wird, jedoch bin ich trotzdem neugierig, um ehrlich zu sein.

Wie ich oben schon geschrieben habe ist das ein Bug(oder so von MS gewollt?) im IE er sendet keine submit buttons mit wenn man enter drückt ausser der button hat gerade den focus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...