別のフォームを含むフォームがあります。
JavaScript を使用してネストされたフォームを送信すると、Internet Explorer では 2 回送信されますが、他のブラウザーでは 1 回だけ送信されます。
ネストされたフォームを送信して、IE で 1 つの要求のみを送信する方法。
編集:
入れ子になったフォームを送信するために onchange イベントを使用しています。私の場合、クリックはどのように機能しますか?
別のフォームを含むフォームがあります。
JavaScript を使用してネストされたフォームを送信すると、Internet Explorer では 2 回送信されますが、他のブラウザーでは 1 回だけ送信されます。
ネストされたフォームを送信して、IE で 1 つの要求のみを送信する方法。
入れ子になったフォームを送信するために onchange イベントを使用しています。私の場合、クリックはどのように機能しますか?
フォームをネストするべきではありませんが、イベントの伝播を停止できます。たとえば、click
イベントが外部フォームを送信する場合は、次のようにします。
$("form").on("click", function(e){
e.stopPropagation();
});
イベント委任に関する注意事項を必ずお読みください。
また、フォームをネストする必要はありません。必要に応じて、1 つのフォーム内に送信ボタンを配置して、まったく別のフォームを送信することができます。form
ボタン自体の属性を使用するだけです。
<form id="foo">
<!-- Within #foo, but I submit #bar -->
<input type="submit" form="bar" value="Within Foo" />
</form>
<form id="bar">
<!-- Within #bar, but I submit #foo -->
<input type="submit" form="foo" value="Within Bar" />
</form>
この属性は、Internet Explorer 10 ではこのようにサポートされていないことに注意してくださいform
。次のような単純なロジックを使用して、このロジックにパッチを適用できます。
$(":submit[form]").on("click", function ( e ) {
$( "#" + $(this).attr("form") ).submit();
e.preventDefault();
});