- ベストアンサー
フォーム要素以外にもname属性を付与して良い?
HTML5仕様では、name属性はどこに付与する決まりになっているのでしょうか? ・フォーム要素以外にもname属性を付与して良いのでしょうか? ・下記のようなことをしても良いでしょうか? ・テキストフィールドではなく、<div name="hoge">をDOM操作してその結果をPOSTで受け取りたいのですが… <form method="post"> <div name="hoge"></div> <input type="submit"> </form>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
getElementsByName をつかえば、どの要素に name 属性をつけても対処できますが、 やりたい事を実現するならば、以下はいかがでしょうか。 <form> <div><input type=hidden name=hoge value=ほんげ><span>ほんげ</span></div> </form> function DOM操作して値を書き換え(フォーム){ var hoge = フォーム.elements['hoge']; hoge.value = 'ほんげぇぇぇぇ'; hoge.nextElementSibling.textContent = 'ほんげぇぇぇぇ'; }
その他の回答 (3)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
>入力項目に入力させずに、複数div内のテキストとかを送信し、POSTで受け取りたいです。 それだけでは分かりません。 そのテキストは、どうして作成されているのですか???。その補足の内容からは、動的にページが作成されているのじゃないかと。 もしそうであるなら、それを出力する段階でhiddenに入れて別途テキストを記述するか、textareaに記述してdisabled属性をつけて変更できなくしてスタイルシートで枠を消すなどすれば良い。もし静的な物でしたら、同様に記述しておけばよい。
お礼
回答ありがとうございましたー
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 書けませんし、divタグでは送信対象に含まれません。 やるとしたらhidden項目にその内容をセットするとか、送信寸前にhidden項目を作成するとかしないとサーバ側では受け取れません。
お礼
回答ありがとうございました。 >divタグでは送信対象に含まれません ・無理なんですね >やるとしたらhidden項目にその内容をセットするとか、送信寸前にhidden項目を作成するとかしないとサーバ側では受け取れません ・hiddenとか使わずにそのままやり取りする裏技みたいなのないかな、と思ったんですけど、ダメなんですねー
- ORUKA1951
- ベストアンサー率45% (5062/11036)
DIVの内容はフォームでは受け取れません。 DIVはグローバル属性のみもてます。 【引用】____________ここから Content attributes: Global attributes  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[4.5 Grouping content — HTML5( http://www.w3.org/TR/2012/CR-html5-20121217/grouping-content.html#the-div-element )]より ><div name="hoge">をDOM操作してその結果をPOSTで受け取りたいのですが… 具体的に何をしたいのでしょう。
お礼
回答ありがとうございました。 >DIVはグローバル属性のみもてます ・divにname属性とかつけれないんですね >具体的に何をしたいのでしょう ・入力項目に入力させずに、複数div内のテキストとかを送信し、POSTで受け取りたいです
お礼
回答ありがとうございました。 ・考え方としては、送信するためには一旦hiddenへ値をセットしなければいけない、ということですね ・参考になりましたー