(javascript) onClick="form.submit(); funktioniert nicht auf IE & Opera
Ich habe einen code (siehe unten). Es funktioniert perfekt in Firefox: es speichert die übermittelten Informationen nach dem Klick auf __JL_SPEICHERN - Taste und hält user auf der gleichen Seite.
Aber im Internet Explorer & Opera es nur Umleitungen auf der index-Seite (index.php) und speichert keine der übermittelten Informationen.
Was kann ich tun um dieses problem zu lösen? Danke.
Hier ist mein code:
<form action="index.php" id="mosForm" method="post" enctype="multipart/form-data">
<fieldset>
<legend><?=__JL_ABOUT_MYSELF?></legend>
<span class="a" onclick="showHideLegend('about_myself_1')"><?=__JL_EDIT_BLOCK;?></span>
<div id="about_myself_descr" style="display: block"><?=__JL_SELF_DESCR;?></div>
<div id="about_myself_1" style="display: none"><?php include "html/about_myself_fill.php"?></div>
<div id="about_myself_2""><?php include "html/about_myself_show.php"?></div>
</fieldset>
<fieldset>
<legend><?=__JL_ABOUT_MYSELF?></legend>
<span class="a" onclick="showHideLegend('type_1')"><?=__JL_EDIT_BLOCK;?></span>
<?php if ($typ_block) {?>
<?php /* <input type="checkbox" id="jl_type_block" name="jl_type_block" <?php if ($roon_type_block) echo 'checked ';?> /> */?>
<input type="checkbox" id="jl_type_block" name="jl_type_block" disabled <?php echo 'checked ';?> />
<label for="jl_type_block"><?=__JL_ON_BLOCK?></label>
<?php } else {
echo __JL_OFF_BLOCK;
}?>
<div id="about_myself_descr" style="display: block"><?=__JL_SELF_DESCR;?></div>
<div id="type_1" style="display : none">
<?php include "html/type.php"?>
</div>
<?php if ($typ_block) { ?>
<div id="type_2">
<?php include "html/type_show.php"?>
</div>
<?php } ?>
</fieldset>
<fieldset>
<legend><?=__JL_INTEREST?></legend>
<span class="a" onclick="showHideLegend('interest_1')"><?=__JL_EDIT_BLOCK;?></span>
<?php if ($interest_block) {?>
<input type="checkbox" id="jl_interest_block" name="jl_interest_block" disabled <?php echo 'checked ';?> />
<label for="jl_interest_block"><?=__JL_ON_BLOCK?></label>
<?php } else
echo __JL_OFF_BLOCK;
?>
<div id="interest_descr" style="display:block"><?=__JL_INTEREST_DESCR;?></div>
<div id="interest_1" style="display:none">
<?php include "html/interest.php"?>
</div>
<?php if ($interest_block) { ?>
<div id="interest_2">
<?php include "html/interest_show.php"?>
</div>
<?php } ?>
</fieldset>
<input type="submit" name="save" value="__JL_SAVE" onClick="mosForm.submit();" />
<input type="hidden" name="option" value="com_joomlove" />
<input type="hidden" id="task" name="task" value="save_info" />
</form>
Vollständigen Quellcode finden Sie hier: http://narkoz.pastebin.com/f4f036f5
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht eine änderung des Verhaltens der form, warum verwenden JavaScript, um das Formular Absenden?, Sie sind bereits in einem submit-button.
Sollten Sie versuchen, Angabe der form name="mosForm", nicht nur id="mosForm", so dass die DOM-Referenz aus, dass die event-handler gefunden werden kann.
Sollten Sie wirklich durchführen jegliche Veröffentlichungen im Zusammenhang der Logik in FORM der "submit" - event-handler, nicht in "klicken Sie auf" one der FORM der Elemente. z.B.:
Diese sollte sicherstellen, dass die Tastatur-basierte Einreichung geht durch den handler; es gibt Ihnen auch eine Möglichkeit zum verhindern des Formulars durch Rückgabe falsy-Wert aus einem event-handler. Alle truthy Wert, auf der anderen Seite, wird automatisch ein submit eines Formulars.
onsubmit="validateForm(this)"
undreturn true
im Methodenrumpf.Wenn Sie haben:
Funktioniert in IE8, Opera, Chrome, aber nicht im Firefox(14):
Firefox hat ein problem mit:
name="submit"
. Wenn Sie ändern diename
Attribut:name="submit_ff"
(oder etwas anderes), es funktioniert auch im Firefox.