• 締切済み

フォーム要素の操作について

tracerの回答

  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

たとえば、inputにnameもidもclassも設定されている場合、どれを使ってDOMを取得するかという話でしょうか? その場合は、No.1さんがおっしゃるように、idで取得したほうが高速でしょう。 ただ、実行が高速なことと、制作的に効率がよいかは別です。classやname以外にも、いろんなセレクタを使ってコードをシンプルに書いたりすることもあります。ユーザー観点だけで見れば、高速なほうがいいですね。 ちなみに、jQueryで$("#hoge")が高速なのは、document.getElmentByID("hoge")を実行するからです。 状況にもよりますが、平たく考えるならば、getElmentByIDが一番ブラウザに負担なくDOMを取得できるということになります。 質問の意味がそうではなくて、form要素に、nameかidかclassのどれかの属性を1つ使うとしたらどれを使うか、ということであれば、それはnameだと思います。ajax前提のformであれば、機能的にはname属性すら必要なくなりますが、name属性を使用すると、jQueryであれば、$.serialize()が使えますし、html5でならformdataが使えるのでいろいろと便利です。

関連するQ&A

  • JavaScriptでフォーム内配列要素の要素数

    いつもお世話になっております へんな質問で申し訳ございません CMSなどを使っているとフォーム内に配列形式になった名称をよく見かけるのですが 仮に下記のような場合に JavaScript内で各フォームの各々の要素数を取得することは可能でしょうか? <form name="f"> <input type="text" name="scf[配列1][0]" value="" class="widefat"> <input type="text" name="scf[配列1][1]" value="" class="widefat"> <input type="text" name="scf[配列1][2]" value="" class="widefat"> <input type="text" name="scf[配列2][0]" value="" class="widefat"> <input type="text" name="scf[配列2][1]" value="" class="widefat"> <input type="text" name="scf[配列2][2]" value="" class="widefat"> <input type="text" name="scf[配列2][3]" value="" class="widefat"> </form> 例えばJavaScriptで var nLenA = formname(scf[配列1]).length; var nLenB = formname(scf[配列2]).length; とすると nLenAの値は3 nLenBの値は4 という具合に配列数を取得してこれらを制御したいと考えています おいそがしいところ申し訳ございませんが わかる方がいらっしゃいましたらご教授お願い致します

  • フォーム内のオブジェクトを取得したい

    フォームタグ内のオブジェクトをphpで取得できないでしょうか。 たとえば <From Action"xxx.php" Post="Mothod"> <Input Type=Text Name=xxx> <Input Type=Text Name=xxx> <Input Type=Submit Name=xxx Value=送信> </Form> このようなフォームがあり「送信」を押下した際に、このフォームオブジェクトの要素を知りたいのです。 JavaScriptであれば document.forms[0].elements[0] で拾えたと思うのです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • フォームでのタグについて

    検索フォームに IDを入力して ブログを表示するようなURLでリンクしたいと考えています。 <form method="get" action="http://blog.goo.ne.jp/" class="search" target="_blank"> <div> <input type="text" name="ID" class="textBox"><input type="hidden" value="/"> <input type="submit" value="検索" class="btn"> </div> </form> 上のようなhtmlタグを作りましたが うまく http://blog.goo.ne.jp/synchro-night/ http://blog.goo.ne.jp/(IDをフォームで入力)/ のようなリンクができません。 どのように変えればよいのでしょうか? JavaScriptで する必要があるのでしょうか?

    • ベストアンサー
    • HTML
  • jQuery 階層セレクタとフォームセレクタの混在

    いつもお世話になります。 jQueryで、階層セレクタにフォームセレクタを使用すると、一部思うように動作しないセレクタがあります。動作しないのは、例えば以下のセレクタです。 HTML ------ <div id="div1"></div> <input type="hidden" name="hdn0" value="h1" /> <input type="hidden" name="hdn1" value="h2" /> ----- jQuery ----- $(function() { var obj = $("#div1"); alert($("~ input:hidden[name='hdn0']", obj).val()); alert($("~ input:hidden[name='hdn1']", obj).val()); }); ----- 上記のセレクタは、階層セレクタで 「prev ~ siblings」 のsiblingsを、フォームセレクタの:hiddenを指定しているのですが、この:hiddenが効いてないみたいなのです。 (:hiddenを外せばとれます) 自分なりに調べてみて、siblingsにはセレクタを指定することができると思っています。 しかしこの認識は間違っているのでしょうか。 宜しくお願いします。 jQuery:1.7.2 (https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.jsを使用)

  • フォーム制作。

    アンケートをするためにフォームを作っているのですが、 CGI使えないサーバーはできませんよね? 今、自作のCGIは使えないけどフォームとカウンターなら 使えるとか言うのでそれをつかって一応作れているので、 僕は良いのですが、友達がそういうのしたいというので どうやったらフォーム作れるんですか? <INPUT SIZE="30" NAME="">とか <INPUT TYPE="RADIO" NAME="" VALUE="">とか <select name="">とか <TEXTAREA ROWS="4" COLS="40" NAME=""> ・・・とかは分かるんですけどそれだけじゃ送れませんよね。ちゃんと何所に送られるのかを設定しないと・・・。 <FORM ACTION~(?)とかいう初めに付ける奴がわかんないです・・・(^^;) なんか自分でもわかんないのでわけわからない文章に なってしまいました。m(-_-)m

    • 締切済み
    • CGI
  • フォームボタンがフッターにあるときの記述について

    1.フォームを使用し、下のようなサイトを作る場合 このようなコードで作ったのですが、どのような書きかたがスマートなのでしょうか? (※商品選択からカートに入れるボタンまでの間に、他に要素がたくさんあります。) よろしくお願いいたします。 <div id="header">   ・   ・   ・ </div> <div id="contents"> <form> <input> <select>   ・      ←商品選択フォーム   ・   ・ </select> </div> <div id="footer">   ・   ・   ・ <input>←カートに入れるボタン </form> </div>

    • ベストアンサー
    • HTML
  • フォームからsubmitをした後再読込させない

    ほぼ初心者でフォームからの申込みを作っています 現在 <form name="a11" action="/products/detail.php" method="post" > <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="137" /> <input type="hidden" name="product_class_id" value="634" /> <input type="checkbox" name="quantity" value="1" /><br /> <input type="submit" value="受講する" onClick="alert('カゴに入れました');value='受講する'" /> </form> というフォームが数十個あるのですが、 一つチェックボックスにチェックを入れて送信するとページの再読み込みがされて チェックボックスのチェックが消えてしまいます どのチェックボックスにチェックを入れたかは残したまま、次のsubmitを押させたいのです 申込み者がどのフォームにチェックを入れて送信をしたかを見れるようにして 次のページに飛ばしたいのです どうかご教授願います HTMLの項目で質問させていただきましたが、JavaScriptのプログラム例など 併せてご教授いただけますと助かります どうぞよろしくお願いいたします

  • テキスト・セレクトフォームにて何も入力されていない状態ではフォームの色を変えるためには

     Rubyを使用して掲示板のシステムを作成しています。 必須項目 <input type="text" name="textfield"><br> 任意項目 <input type="text" name="textfield2"><br> 必須項目 <input type="text" name="textfield3"><br> 必須項目 <textarea name="textarea"></textarea><br> 必須項目 <select name="select"></select> と複数のテキストフォームとセレクトフォームがあり,その一部が必須項目です。そこで必須項目と分かるようにフォームの入力部分を赤く塗り,何か文字が入力されたら(何か選ばれたら),元の白の状態にしたいと考えています。  このようなことは実際可能なので使用か。ご教授お願いします。

    • ベストアンサー
    • HTML
  • フォームから送信される値について教えてください

    ある人とwebのフォームを作成する話をしていて、相手の方からフォーム のテキストやチェックボックスなどinput要素では、name属性は必須では なくid属性が必須で、ブラザーからはidとvalueの組み合わせがサーバに 送信されるといわれました。 私の認識としては 「一般にHTMLのフォームをサーバーへ送信する時には、 get・postに かかわらずブラウザが自動的にFORMの子要素内のnameとvalueの値の ペア(name=value&name=valueというような値)を送信する」 だということを話したところ。 getに関しては今もそうかもしれないが、現在のpostの場合はidとvalueの 値のペアが送信され、それをサーバで処理しているというようなことを 言われました。 私自身phpやperlを使っています、ブラウザからの送信方法は get・postで違うが、送られてくる内容はpostの場合もnameとvalueの 組み合わせだと認識しています。 実際にスクリプトを作成して、テストしてもidとvalueの組み合わせは サーバ側のプログラムでは取得できませんでした。 相手の方が言うように最近のブラウザー(クライアント)はサーバに id=valueの組み合わせを送信するものや場合によってそのように振る舞う ことがあるのでしょうか。 この件に関して詳しい方、ご教授いただけないでしょうか。 できればRFC等の確かな資料をお示しいただけると助かります。

    • ベストアンサー
    • HTML
  • VB.NETで他のHTMLの要素を取得して操作したい場合で悩んでいるこ

    VB.NETで他のHTMLの要素を取得して操作したい場合で悩んでいることがあります。 例えばフォームにidだとかclassが指定されていない場合どのように指定してあげるべきなのでしょうか? ASPXのページ上のフォームに入れたデータを例えば別のWEBページのフォームにデータを渡したいと思っています。この辺について教えてください