• ベストアンサー

フォーム要素以外にもname属性を付与して良い?

HTML5仕様では、name属性はどこに付与する決まりになっているのでしょうか? ・フォーム要素以外にもname属性を付与して良いのでしょうか? ・下記のようなことをしても良いでしょうか? ・テキストフィールドではなく、<div name="hoge">をDOM操作してその結果をPOSTで受け取りたいのですが… <form method="post">  <div name="hoge"></div>  <input type="submit"> </form>

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.3

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 = 'ほんげぇぇぇぇ'; }

re97
質問者

お礼

回答ありがとうございました。 ・考え方としては、送信するためには一旦hiddenへ値をセットしなければいけない、ということですね ・参考になりましたー

その他の回答 (3)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

>入力項目に入力させずに、複数div内のテキストとかを送信し、POSTで受け取りたいです。 それだけでは分かりません。  そのテキストは、どうして作成されているのですか???。その補足の内容からは、動的にページが作成されているのじゃないかと。  もしそうであるなら、それを出力する段階でhiddenに入れて別途テキストを記述するか、textareaに記述してdisabled属性をつけて変更できなくしてスタイルシートで枠を消すなどすれば良い。もし静的な物でしたら、同様に記述しておけばよい。

re97
質問者

お礼

回答ありがとうございましたー

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 書けませんし、divタグでは送信対象に含まれません。 やるとしたらhidden項目にその内容をセットするとか、送信寸前にhidden項目を作成するとかしないとサーバ側では受け取れません。

re97
質問者

お礼

回答ありがとうございました。 >divタグでは送信対象に含まれません ・無理なんですね >やるとしたらhidden項目にその内容をセットするとか、送信寸前にhidden項目を作成するとかしないとサーバ側では受け取れません ・hiddenとか使わずにそのままやり取りする裏技みたいなのないかな、と思ったんですけど、ダメなんですねー

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

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で受け取りたいのですが…  具体的に何をしたいのでしょう。

re97
質問者

お礼

回答ありがとうございました。 >DIVはグローバル属性のみもてます ・divにname属性とかつけれないんですね >具体的に何をしたいのでしょう ・入力項目に入力させずに、複数div内のテキストとかを送信し、POSTで受け取りたいです