• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryで配列化したidのキーを取得したい)

jQueryで配列化したidのキーを取得する方法

このQ&Aのポイント
  • jQueryを使用して、配列化したidのキーを簡単に取得する方法を教えてください
  • あるフォームのinputのid属性を配列にして、jQueryでキーだけ抜き出したいですが、簡単な方法はありますか?
  • PHPのように簡単に配列のキーを取得する方法がJavaScriptにあるかどうか教えてください

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

  • ベストアンサー
回答No.1

var inp = document.querySelectorAll ('form input[id^="test["]'); inp[1].value="123"; var inp = getInputs (document.forms[0], 'test'); alert(inp[1].value); function getInputs (form, id) {  var reg = new RegExp ('^'+ id + '\\[(\\d+)\\]$');  var i, e, t;  var es = form.elements;  var result = [];  for (i = 0; e = es[i++]; )   if (t = reg.exec (e.id))    result[t[1]] = e; // or result.push (e);  return result;  }

prr4e
質問者

お礼

連絡が遅くなってすみません。 RegExp と正規表現を参考に 対応する事が出来ました。 非常に助かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • jquery複数のcheckboxの値について

    どうも、はじめまして、jqueryに興味をもった初心者です。 jqueryを利用で、phpファイルにcheckboxの値を渡し、loadでphpファイルを読み込みたいのですが、うまくいきません。。ご存知の方いましたら、 お手数ですが、教えてください。。 環境、php5.1,jquery1.4, ソース <!--html側--> <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="chk.js"></script> <title></title></head> <body> <input type="checkbox" name="test[]" id="test" value="1">test1 <input type="checkbox" name="test[]" id="test" value="2">test2 <input type="checkbox" name="test[]" id="test" value="3">test3 <input type="checkbox" name="test[]" id="test" value="4">test4 <input type="submit" value="sub" id="sub"> <div id="hbox">ここにロードしたい</div> </body> </html> //chk.js --------------------------- $(function(){ $("#sub").click(function () { var chk = $(".@test:checkbo[name^='test[]']:checked") .val(); $("#hbox").load("form.php",{test:chk}); }); }); //form.php ---------------------------- <?php echo htmlentities( print_r($_GET, true) ); ?> 以上がソースです。。。このソースだと、 checkを入れた値1つしか、phpに渡すことができません。。 checkを入れた値をすべて、phpに渡し、loadしたいのですが、 方法が分からず困ってます。 ご存知の方いましたら、お手数ですが、 分かりやすく、教えていただけませんでしょうか お願いいたします。

  • jquery.validate.jsについて

    jqueryで入力チェックを行うプログラムを実装したく、「jquery.validate.js」を利用したいと思っているのですが、inputのnameが配列の場合、うまく動作しません。 ご存知の方、いらっしゃいましたら、ご教授いただけると幸いです。 以下に動作しないコードを貼り付けます。 尚、下記コードで「[]」を取り除いて実行すると正常に動作するため、nameに配列を指定するのが問題であると考えています。 どなたか、よろしくお願いいたします。 <form method="post" id="check_form1"> 名前 <input name="name[]" type="text" id="name"> メール <input name="mail[]" type="text" id="mail"> <input type="submit" name="Submit" value="Submit"/> </form> <!-- 入力チェック --> <script type="text/javascript" src="js/jquery.validate.js"></script> <script type="text/javascript"> $(function(){ $("#check_form1").validate({ rules: { name[] :{ required: true }, mail[] :{ required: true, email: true } }, messages: { name[] :{ required: "お名前を入力してください" }, mail[] :{ required: "メールアドレスを入力してください", email: "正しいメールアドレスを入力してください" } } }); }) </script>

  • 対象データの取得方法

    formで送信する入力データのチェックをしたいです。 データは配列になります。(phpで作成) phpの宣言は省略します。 ◆送信側 <form method="post" action="xxxxx.php" target="_top" name="test_form"> for(i=0;i<=10;i++){ <input type="text" name="inputno[<?=$i?>]" value="<?=$inputno[$i]?>"> } <input type="submit" value="送信" onclick="return(inputck());"> </form> ◆js処理 function inputck(){ for(i=0;i<10;i++){ if(document.test_form.inputno[i].value.match(/[^0-9]/g)){ alert("整数値を入力してください"); return(false); } } } という感じなのですが、jsのif文(inputno[i]?)がおかしいみたいでうまくいきません。 配列でなければ大丈夫なので…。 記述方法を教えてくださいm(__)m

  • jqueryの$.ajaxで送信できない

    はじめまして。 jquery初心者ですが、$.ajax使ってのPOST送信ができません、php側でログを取ってみてもアクセスすらしません。若干お手上げなので、分かる方がいたら、アドバイスを頂けませんか? 【やりたいこと】 formにデータを入力(html)し → jqueryを使ってpost送信(js) → 認証(php) → 結果をhtmlに表示させたい。 【ソース】 -a.html- <form method="post" id="signin" action=""> <input id="email" name="email" value="" title="email" class="required" tabindex="4" type="text"> <input id="posturl" type="hidden" name="posturl" value="a.php"> <input id="signin_submit" value="Sign in" tabindex="6" type="submit"> </form> -------- -a.js- $(function() { $("form#signin").submit(function() { var email = $("input#email").val(); var postFile = $("input#posturl").val(); var data = {email:email}; $.ajax({ type: "POST", url: postFile, data: data, timeout: 1000, error: function(){ // エラー時 alert('Error'); }, success: function(data) { if(data != ''){ alert(data.result); } else { alert('no data'); } } }); }); }); -------- -a.php- (他略、とりあえず適当に出力してみる) echo "{'status': false,}"; exit; -------- よろしくお願いします。m_m

  • 複数formの使用について

    お世話になります。 複数のFORMを入れ子で使用する方法はありますでしょうか? 下記の記述だと外側のFORMが無効になってしまいます。 表示の順は以下のようにしたいです。 aaa.phpへPOST変数でデータを受け渡して使用します。 <form method="post" name="test1" action="aaa.php"> <input type="text" name="text01" id="textA" value="10"> <input type="text" name="text02 id="textA" value="20"> <input type="text" name="text03" id="textA" value="30"> (上のinputタグ数は動的に変わります) <form method="POST" name="test2" action="bbb.php"> <select name="select"> <option>selectA</option> <option>selectB</option> <option>selectC</option> <input type="submit" name ="read" value="読込"> </select> </form> <input type="submit" value="保存" > </form> 以上、よろしくお願いいたします。

    • 締切済み
    • PHP
  • POSTを配列として送信し、キーと値を一覧で表示

    formに入力した値をPOSTを配列として送信し、 そのキーと値の一覧表を作ってみようとしたのですが、 思うように動いてくれません。何が間違っているのでしょうか。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>POSTを配列で送信して取得する</title> </head> <body> <?php if($_SERVER[REQUEST_METHOD]=="POST"){ if(isset($_POST["submit_no"])){ echo "<table border=\"1\"><tr><td>番号</td><td>内用</td><tr>"; while($key_no = key($_POST[no])+1){ //+1は番号を1から表示させるため $values = htmlspecialchars($_POST[no],ENT_QUOTES); echo <<< EOS <tr> <td>$key_no</td> <td>$values</td> </tr> EOS; } echo "</table>"; } } ?> <form action="post_hairetu.php" method="POST" enctype="multipart/form-data"> 1<input type="text" name="no[]" value="" /><br /> 2<input type="text" name="no[]" value="" /><br /> 3<input type="text" name="no[]" value="" /><br /> <input type="submit" name="submit_no" value="送信" /> </form> </body> </html>

    • ベストアンサー
    • PHP
  • suggest.jsに関する質問

    入力補完ライブラリのsuggest.jsを使って検索したいと思っています。 補完候補は表示できたのですが、その候補語で検索できません。 http://www.enjoyxstudy.com/javascript/suggest/ 下記フォームでは検索ボタンをクリックすればsearch.phpに移行しました。 <form method="POST" action="search.php"><input type="text" size="10" name="key"><input type="submit" value="検索"></form> しかしながら下記フォームだと検索ボタンをクリックしてもページ移動せず何も起こりません。 <form method="POST" action="search.php" onsubmit="return false;"><input id="text" type="text" name="key" autocomplete="off" size="10" style="display: block"><input type="submit" value="検索"><div id="suggest"></div></form> どこがおかしいのでしょうか?

  • formの入れ子の回避方法

    アドバイス下さい。 <form method="post" name="addForm" id="addForm" action="aaa.php"> <input type="text" name="textA" id="textA"> <form method="post" name="uploadFormA" id="uploadFormA" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text1" id="text1"> <input type="file" name="upload_fileA" id="upload_fileA"> <input type="button" value="アップロード"> </form> <form method="post" name="uploadFormB" id="uploadFormB" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text2" id="text2"> <input type="file" name="upload_fileB" id="upload_fileB"> <input type="button" value="アップロード"> </form> <form method="post" name="uploadFormC" id="uploadFormC" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text3" id="text3"> <input type="file" name="upload_fileC" id="upload_fileC"> <input type="button" value="アップロード"> </form> <input type="text" name="textB" id="textB"> <input type="submit" value="送信"> </form> のような、formが入れ子になってしまっているformがあります。 これを回避する方法を教えていただきたいです。 条件としては、 ・見た目はこの順番がいい。 ・javascript、CSS等なんでも良いです。 ・各「アップロード」ボタンで、text1,2,3,4、upload_fileA,B,C,Dを送信、「送信」ボタンでtextA,Bを送信したい。 以上、お願いいたします。

    • ベストアンサー
    • HTML
  • servet(idに関連付くvalue値を取得する方法について)

    HTMLのフォーム内にある 「idに関連付くvalue値を取得する方法について」教えてください。 今はnameで取得しているのですが、 それが中々不便なものでServletでidのvalue値を取得したいと思っています。 【HTML】 ---------------------------------------------- <html> <head> <title>ID_VALUE_GET</title> </head> <body> <form name="form1"> <input type="text" id="id" name="name"> </form> </body> </html> ---------------------------------------------- 現在:  String インプット属性のnameのvalue値 = getAttribute(name); 考えている事:  String インプット属性のidのvalue値 = getAttribute(id); ということをしたいのですが可能でしょうか? (nameに対して、getAttribute(getParameter)をかけるのではなく、idに対してかける方法というのはありますでしょうか?)

    • ベストアンサー
    • Java
  • javascriptでselectboxのvalueを取得し、特定のv

    javascriptでselectboxのvalueを取得し、特定のvalue値により、「<input type="text" name~>」をブラウザに表示させたいのですが、やり方がわかりません。 javascriptについて素人です。 jQUERYを使用して、phpのようにif文を追加したらいけるのかなと思って下記のようにやってみたのですが、更新しないと変わりませんでした。。 どなたかお力を貸して下さい!どうか宜しくお願い致します! ========================================== <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp" /> <meta name="robots" content="noindex,nofollow" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript" src="/admin/js/jquery-1.2.3.js" ></script> <script type="text/javascript"> $(function() { hogehoge = $("#abcdefg").val(); if(hogehoge !== '3'){ $('#hijklmn').hide(); } }); </script> </head> <body> <form method="post" action="/admin/~"> <select id="abcdefg"> <option value="1">aaaaaaaa</option> <option value="2">bbbbbbbb</option> <option value="3">cccccccc</option> </select> <div id="hijklmn"> 上のセレクトボックスが3の場合のみ、下記のフォームを表示させたい <input type="text" value="ああああああああ" /> </div> </form> </body> </html>