Autor Thema: Webform speichert keine Werte wenn mit IE9 oder Opera 12  (Gelesen 3363 mal)

Offline Christian Kröll

  • Aktives Mitglied
  • ***
  • Beiträge: 197
  • Geschlecht: Männlich
Hallo,

ein Webformular bereitet mir Kopfschmerzen: Ein simples Formular mit ein paar Eingabefeldern soll via Webbrowser befüllt und gespeichert werden und das gespeicherte Dokument wird via $$Return-Feld dem User nochmals angezeigt.

Der Notes-eigene Button ist ausgeblendet; zum Speichern verwende ich
Code
<input type=button value="Senden" onclick="document.forms[0].submit();">
Das Dokument wird auch gespeichert, nur bleiben alle Felder leer. Verwende ich Mozilla oder Chrome - kein Problem.

Die Suche hier war erfolglos - vielleicht/wahrscheinlich habe ich auch nur die falschen Begriffe verwendet.

Vielen Dank schonmal vorab



« Letzte Änderung: 08.08.12 - 11:02:22 von Christian Kröll »
Christian Kröll

Offline mezz

  • Junior Mitglied
  • **
  • Beiträge: 69
Re: Webform speichert keine Werte wenn mit IE9 oder Opera 12
« Antwort #1 am: 07.08.12 - 15:46:57 »
Evtl. ein Fehler im HTML, je nach Browserengine wirds dann halt "repariert" oder auch nicht.
Kannst ja einfach mal die Requests vergleichen (z.B. mit Wireshark die Pakete aufzeichen und auswerten).

perl -e 's,,q#$:%*?:!&=(:!>@.#.$/,e;y;!-./:-@[-]{-~; a-uJP;;print;'

Offline Jörg Barth

  • Frischling
  • *
  • Beiträge: 49
  • is reported to Lotus Quality Engineering
Re: Webform speichert keine Werte wenn mit IE9 oder Opera 12
« Antwort #2 am: 07.08.12 - 16:08:37 »
Statt Wireshark kann man auch Fiddler benutzen,
gibt's unter http://www.fiddler2.com/fiddler2/

Gruß

Jörg

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Webform speichert keine Werte wenn mit IE9 oder Opera 12
« Antwort #3 am: 07.08.12 - 19:36:45 »
So, ich muss jetzt einfach fragen: Warum diese in keinster weise barrierefreie JS Kruecke anstatt einen normalen "Submit" Button zu verwenden?

Zum Problem: Interessant waere hier auch der FORM Tag, damit wir die Aktion sehen, die hinter dem Form liegt.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Christian Kröll

  • Aktives Mitglied
  • ***
  • Beiträge: 197
  • Geschlecht: Männlich
Re: Webform speichert keine Werte wenn mit IE9 oder Opera 12
« Antwort #4 am: 07.08.12 - 21:58:59 »
Martin, die Krücke ist ziemlich alt. Mit dem Standard-Button funktioniert es leider auch nicht.

So gelöst:
Ich habe sukzessiv die Maske abgespeckt. In der Maske gab es - Ihr kennt es von den meisten Webseiten - ein Suchfeld. Nehme ich das Feld raus, funktioniert die Maske in allen Browsern. Wieder rein, dann macht es wieder "Peng".

Ich verstehe allerdings der Hintergrund nicht. Das Suchfeld ist ein zur Anzeige berechnetes Feld:
Code
_database := @ReplaceSubstring (@Subset (@DbName; -1); "\\" : " "; "/" : "+");
"[</FORM><FORM METHOD=post ACTION=\"/" + _database + "/ViewSearch?CreateDocument\" ENCTYPE=\"multipart/form-data\">" +
"<INPUT NAME=\"SearchString\" MAXLENGTH=\"40\" value=\"SUCHE\">" +
"<INPUT TYPE=Submit Value=\"Go!\"></Form>]"

Das erste
Code
</FORM>
kann ich auch weglassen, Ergebnis bleibt gleich, nur das dies nicht mehr W3C-konform ist (Form in der Form)

Wisst Ihr vielleicht, was den IE und Opera an dem Code in dem Suchfeld stört??
Christian Kröll

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Webform speichert keine Werte wenn mit IE9 oder Opera 12
« Antwort #5 am: 08.08.12 - 07:48:35 »
Ja, das nennt sich "Einhalten von Standards".

W3C XHTML specification, Section B. "Element Prohibitions":
"form must not contain other form elements."

HTML 3.2 spec, FORMS section:
"Every form must be enclosed within a FORM element. There can be several forms in a single document, but the FORM element can't be nested."
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Ayhan

  • Aktives Mitglied
  • ***
  • Beiträge: 102
  • Geschlecht: Männlich
  • Geht immer!
    • fabrique d' images ebusiness GmbH
Re: Webform speichert keine Werte wenn mit IE9 oder Opera 12
« Antwort #6 am: 08.08.12 - 09:12:47 »
A) m3 hat recht

B) dein document.forms[0].submit() submittet sozusagen die such-form, aber nicht deine main-form.

Lösung)

Suchmaske:
_database := @ReplaceSubstring (@Subset (@DbName; -1); "\\" : " "; "/" : "+");
"[</FORM><FORM METHOD=post ACTION=\"/" + _database + "/ViewSearch?CreateDocument\" ENCTYPE=\"multipart/form-data\">" +
"<INPUT NAME=\"SearchString\" MAXLENGTH=\"40\" value=\"SUCHE\">" +
"<INPUT TYPE=Submit Value=\"Go!\"></Form><form action="<HIER.DIE.FORM.ACTION.DEINER.MAIN.FORM.HINZUFÜGEN[im quellcode direct nach dem body tag>"....>]"

Dein input type submit änderst dann wie folgt ab:
<input type=button value="Senden" onclick="document.forms[1].submit();">
Ayhan

Offline Christian Kröll

  • Aktives Mitglied
  • ***
  • Beiträge: 197
  • Geschlecht: Männlich
Re: Webform speichert keine Werte wenn mit IE9 oder Opera 12
« Antwort #7 am: 08.08.12 - 11:02:07 »
Danke Ayhan, ziemlich simpel

Erstaunlich bleibt allerdings, dass Safari, Mozilla, Chrome es trotz des Fehlers geschafft haben.

Immer wieder cool mit Euch, herzlichen Dank!
Christian Kröll

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz