質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • JavaScript

    16447questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    6716questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

JS 複数のテキストボックスの値を配列で取得したい

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 456

qwdcf_mag

score 36

複数のテキストボックスがあり、その値を配列で取得したいと思っています。
以下の様に書いてみたところ、Uncaught TypeError: input_areas[i].val is not a functionというエラーが出てしまいます。

どこがおかしいのかが分かりません。
ご指導お願いいたします。
なお、テキストボックスの数は3つです。

↓誤記がありましたので、修正しました。htmlも追加しました。
console.log()すると、input_areasは取得できていますが、inputsは取得できません。

<div>
            <input type="text" value=${date[0]} style="width:50px">/
            <input type="text" value=${date[1]} style="width:25px">/
            <input type="text" value=${date[2]} style="width:25px">
            <br>
            <input class = 'ok' type="button" value="OK">
            <input class = 'esc' type="button" value="esc">
</div>

okボタンのイベントとして↓

    input_areas = $(event.target).siblings("input[type='text']");
    console.log(input_areas);
    var inputs=[];
    for(var i =0; i<3;i++){
       inputs.push(input_areas[i].val());
    }
    console.log(inputs);

追記:自分の中で、上記の方法で動かない理由が理解できていないため、その点のご指摘をいただけると嬉しいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • easy_no_easy

    2018/07/08 19:41

    どちらかと言うとjqueryを使用している様ですのでjqueryのタグも追加してください。

    キャンセル

  • x_x

    2018/07/11 15:06

    inputtypeというのは誤記でしょうか?

    キャンセル

  • qwdcf_mag

    2018/07/13 09:26

    すみません、修正しました!

    キャンセル

回答 3

+3

 サンプル1

<!DOCTYPE HTML>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form action="">
            <p><input type="text" name="ipt00" value="100" /></p>
            <p><input type="text" name="ipt01" value="101" /></p>
            <p><input type="text" name="ipt02" value="102" /></p>
            <p>
                <button type="button">取得</button>
            </p>
        </form>
        <script type="text/javascript" src="//code.jquery.com/jquery-3.1.1.min.js"></script>
        <script>
            $(function () {
                $("button[type=button]").on('click', function () {
                    var form = $("form");
                    var arr = form.serializeArray();
                    console.log(arr);
                });
            });
        </script>
    </body>
</html>

 サンプル2

<!DOCTYPE HTML>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form action="">
            <p><input type="text" name="ipt00" value="100" /></p>
            <p><input type="text" name="ipt01" value="101" /></p>
            <p><input type="text" name="ipt02" value="102" /></p>
            <p>
                <button type="button">取得</button>
            </p>
        </form>
        <script type="text/javascript" src="//code.jquery.com/jquery-3.1.1.min.js"></script>
        <script>
            $(function () {
                $("button[type=button]").on('click', function () {
                    var val = [];
                    $("input").each(function (i, obj) {
                        val.push(obj.value);
                    });
                    console.log(val);
                });
            });
        </script>
    </body>
</html>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

siblingsを見ているということは自分以外のテキストボックスの値を
とりたいということですか?

$(function(){
  $('input:text').on('change',function(){
    var inputs=$(this).siblings('input:text').map(function(){return $(this).val()}).get();
    console.log(inputs);
  });
});
<form>
<input type="text"><br>
<input type="text"><br>
<input type="text"><br>
</form>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

配列アクセスで取得できるのはDOMオブジェクトだから。console.log( input_areas[ i ] ); として確認してみればよいです。

// inputs.push( input_areas[ i ].val() );
//               ↓                ↓
   inputs.push( $( input_areas[ i ] ).val() );

動くサンプル:https://jsfiddle.net/zwc2ax0d/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/15 18:27

    ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    jQueryからdata属性を取得した際、エスケープされるのはなぜでしょうか

    htmlが以下のような状態で <input type="text" value="" data-regex="/\d{1,3}(,\d{3})*/"> jQueryから上記ht

  • 受付中

    HTMLInputElement.valueでInputの入力値を取得できない

    前提・実現したいこと JavaScriptで動的に追加されるHTMLに含まれるInput要素の値を取得しようと考えています。 動的に追加されるので、ソースを直接操作するのではなく、

  • 解決済

    backbone.jsの挙動について

    backbone.jsの学習を進めています。 ボタンを押すと、テキストをappendするという処理を作りたいのですが、 下記のようにapp.jsに記述すると、 Unc

  • 解決済

    【配列】配列への代入が上手くいかない【JavaScript】

    こんにちわ。 タイトルにもあるのですが、配列への代入が思ったような感じにならず困っています。 環境としてはjQueryが入っています。 HTML <div id="wrap">

  • 解決済

    AjaxZip3を見えない要素に入力したい

    ・実現したいこと AjaxZip3で、郵便番号から住所を取得できるが、ユーザー側から見えない要素のところに入れたい ・やってみたこと hiddenフィールドに入れるように実装し

  • 解決済

    formのtype="button"でsubmitさせたい

    現在ページ切り替え(ページ遷移)をしないformを作っているのですが、 <div class="submit"><button type="button" name="mode

  • 解決済

    jQueryでformの値を取得したい

    サイトに絞り込みとソート機能を実装しようと考えています。 具体的には、 checkboxにチェックが入っているものを表示し、 複数ある場合は値が大きい方を上に表示する感じになり

  • 解決済

    canvasの縮尺について

     どなたかご教授願い致します 現在JavaScriptでテキストボックス内の文字列を読み込み、canvasを用いてcanvas内のクリックした位置に読み込んだテキストを表示させるよ

同じタグがついた質問を見る

  • JavaScript

    16447questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    6716questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。