厳密な DOCTYPEにaction 属性<form id='SomeForm'>..</form>
のないフォーム タグがある場合、レンダラーはフォーム タグを無視し、 IE の F12 開発ツールと FF の Firebug はレンダリングされた DOM にそのフォーム要素を表示しません。しかし、生の HTML (ソースを表示) にはそれが表示されます。
jQuery 経由でフォームにアクセスしようとしました$('#SomeFrom')
が、空の配列が返されます[]
。
DOCTYPE をトランジショナルに変更すると、機能します。しかし、私のアプリケーション全体の設定では厳密な DOCTYPE が必要です。JavaScript 経由でページの生の (ソース) HTML にアクセスする方法はありますか?
ノート:
SharePoint 2010 CMS を使用しています。ページの HTML を編集して保存すると、アクション部分が切り捨てられます。基本的に、フォームを作成するための推奨される方法ではありませんが、私はすでにフォームを含む多くのページを作成しています。ここで、同じハンドラーでそれらを検証、文字列化、および ajax 化するためのスクリプトが必要です。
また、このアプローチを使用して、フォームフィールドを div でラップし、文字列化して次のように送信できます。
JSON.stringify($("div#SomeForm input, div#SomeForm textarea, div#SomeForm select").serializeObject())
しかし、フォームにアクセスできれば、コードはより洗練されたものになり、同じように jQuery の検証拡張も使用できます。