[DHTML] innerhtml & formsubmit problemen met Mozilla

Pagina: 1
Acties:

  • Willem2
  • Registratie: Oktober 2000
  • Laatst online: 24-08 14:05

Willem2

Ω is futile

Topicstarter
In een notendop:

Ik heb een pagina waarin ik met innerhtml een 'popup' venstertje maak om bepaalde bewerkingen te kunnen doen op een plaatje. Deze innerhtml bestaat feitelijk uit een tabel met daarin een form. Selecteer wat je wilt doen, klik op submit, javascript controlleert de invoer en als het goed is wordt het formulier gesubmit, anders cancelled hij de submit.

Nu werkt dit prima in MSIE, maar Netscape 7 / Mozilla 1.1b vertikken het. Geen enkele foutmelding (ook niet in de javascript console), helemaal nix.

Dus nu vraag ik me af; mag je (officieel) wel met innerhtml een form opbouwen die submittable is of gaat Netscape hier de fout in?

zo ziet een stuk van mijn betreffende code eruit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form method=post name="edit" action="nailer.php" OnSubmit="return
confirmCopy('" + fn + "', df['did'], document.getElementById('copy').value)">
<tr bgcolor=white>
<td align=top>
<input type="hidden" name="file" value="" + fn + "">
&nbsp;&nbsp;<b>Copy to: </b></td>
<td align=bottom>
<select style="color:gray; font-size:9px; border=none" name="copy">
" + pull + "
</select>
</td>
<td>" + submit + "</td>
</tr>
</form>



voor de duidelijkheid (in MSIE):
Afbeeldingslocatie: http://www.vddh.com/pix/dhtml.jpg


en de code van ConfirmCopy werkt los wel in Netscape/Mozilla....

en nee, ik houd niet van voetbal... :)


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:09

crisp

Devver

Pixelated

Maak van:
code:
1
document.getElementById('copy').value

eens:
code:
1
document.forms['edit'].elements['copy'].options[document.forms['edit'].elements['copy'].selectedIndex].value

Intentionally left blank


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Ik vrees eigenlijk ook dat je met innerHTML geen form mag bouwen in moz. heb hetzelfde probleem namelijk. het zou een bug kunnen zijn, al denk ik eerder dat het met security te maken heeft (al zou ik niet weten waarom). Misschien dat je wel met de normale createElement weg een form in moz mag bouwen en submitten, ff proberen :)

[edit]

Hmz. ik heb ff een testje gemaakt, maar zowel met innerHTML als met createElement(bla) kan ik toch gewoon on the fly een submitbaar form in moz bouwen, zelfs als ik de innerHTML van een hidden div met daarin een form kopieer naar een visible div, dus dan is't wat anders. :{

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

crisp
code:
1
2
3
document.forms['edit'].elements['copy'].options[
   document.forms['edit'].elements['copy'].selectedIndex
].value
Je hoeft toch niet expliciet die selectedIndex aan te spreken :?
code:
1
document.forms['edit'].elements['copy' ].value
werkt ongetwijfeld ook...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:09

crisp

Devver

Pixelated

drm schreef op 03 oktober 2002 @ 10:47:
[...]

Je hoeft toch niet expliciet die selectedIndex aan te spreken :?
code:
1
document.forms['edit'].elements['copy' ].value
werkt ongetwijfeld ook...
Mzz, ja je hebt gelijk! :) (hoewel ik niet met zekerheid durf te zeggen of dat in oudere browsers ook zo is; kan het hier ff niet testen...)

Intentionally left blank


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

't Werkt in ns4 niet, maar who cares :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • RM-rf
  • Registratie: September 2000
  • Nu online

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
2
3
<select style="color:gray; font-size:9px; border=none" name="copy">
" + pull + "
</select>


attribuut name != id ; dus getElementsById('copy') werkt inderdaad niet, je hebt de name wel nodig voor de naam van het te submitten element,
eerlijk gezegd zou ik het niet mooi vinden om de name en id attribuut dezelfde waarde te geven, je krijgt dan wat verwarring in je code, bovendien zijn de vereisten voor de attributes anders, id moet uniek zijn, name niet e.d.

drm's code werkt gewoon en ook in de oudste browsers die javascript ondersteunen (netscape 2 zelfs volgens mij), maar eventueel kun je ook een id="copyElm" toevoegen en deze met getElementById aanspreken (maar dan moet je nog voor msie4x en nn4x een andere check doen)

drm's oplossing heeft mijn voorkeur

edit:
als je document.forms.edit.elements.copy.options[document.forms.edit.elements.copy.selectedIndex].value doet, werkt hij wel downwards

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Willem2
  • Registratie: Oktober 2000
  • Laatst online: 24-08 14:05

Willem2

Ω is futile

Topicstarter
RM-rf had deels gelijk. ID ontbrak idd nog voor netschaap. Tweede waarover hij struikelde, was de OnSubmit in de form tag. Op andere pagina's werkt het wel, maar klaarblijkelijk niet in een innerhtml code.
Dit heb ik nu opgelost mbv. een OnClick bij de submit button.

Mochten mensen het nog willen weten... ;-)

en nee, ik houd niet van voetbal... :)

Pagina: 1