formの入れ子を回避する

<input>: 入力欄 (フォーム入力) 要素 | MDN

form 属性によって、入力欄を文書内のどこに置いても、文書内の他の場所にあるフォームと関連付けることができます。
formの入れ子になりそうなところは、早めにformのタグを閉じてformにidをつけて、inputにformのidを入れてやれば…。
<form id="foo" action="hoge" method="POST">
中略
</form>
<!--formのタグを閉じる-->
<!--別のformここから-->
<form action="fuga" method="POST">
中略
</form>
<!--別のformここまで-->
<!--最初のformのinput-->
<input form="foo" type="text">

id fooのformのinput。
ただしIE11では動作しないようです。

POTI-board改のテンプレート、POTI-board用テンプレート PINKの管理画面のセキュリティ対策のため、GETで管理者パスワードを取得していたテキストリンクをjavaScriptでPOSTに書き換えて、formの入れ子回避のためformにidを付けたのですが…。

やはりIE非対応…。
管理者が記事を削除するときに、Chrome・Firefox・Edgeを使えばすむ事なので、セキュリティリスクの回避を優先しました。

ブラウザのアドレスバーに管理者パスワードが表示されている状態で、著作表示のurlをクリックしたら…。
アクセスログに管理者パスワードが入ったurlが残るかもしれません。

noreferrerタグをいれてあるので、Chromeなら大丈夫かもしれないのですが…。IEはどうだったか…。
POTI-boardに限った問題ではなくて、relmにも同じ問題がありました。

テンプレートで対応できるのであれば、フタをしておいたほうがいいのでIE非対応でも…。

ゲストが投稿を編集・削除するときに使うメンテナンスフォームはIEでも問題なく動作するので、管理者が管理画面を操作する時にChrome・Firefox・Edgeを使えばすむことです。

formの入れ子を回避する

変更前のformタグの範囲。

formの入れ子を回避する

その中にjavaScriptを使ったform。

formの入れ子を回避する

formの入れ子になってしまうので、早めにformのタグを閉じて、idを付ける。

formの入れ子を回避する

inputにform属性を指定してformタグの範囲外から入力。
POTI-board用テンプレート PINK を配布します。: STP^3

セキュリティ対策済みのPOTI-board用テンプレート。

NEOを使うのチェックを外すとしぃペインター標準版が起動するテンプレートの配布も開始しましたので、よろしくお願いいたします。

この記事へのコメント

コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。