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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1318閲覧

jQueryでformの値を取得したい

MeB

総合スコア104

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/07/10 10:34

編集2018/07/11 01:44

サイトに絞り込みとソート機能を実装しようと考えています。

具体的には、
checkboxにチェックが入っているものを表示し、
複数ある場合は値が大きい方を上に表示する感じになります。

html

1<form id="form" name="search" action=""> 2 <div> 3 <p></p> 4 <label><input name="checkbox[]" type="checkbox" value="1">オレンジ</label> 5 <label><input name="checkbox[]" type="checkbox" value="2"></label> 6 </div> 7 <div> 8 <p></p> 9 <label><input name="checkbox[]" type="checkbox" value="2">2月</label> 10 <label><input name="checkbox[]" type="checkbox" value="8">8月</label> 11 <label><input name="checkbox[]" type="checkbox" value="10">10月</label> 12 </div> 13 <button class="submit" value="検索">検索</button> 14</form>

js

1// 検索が押された時の処理 2var value_each = []; 3$('input[name="checkbox[]"]:checked').each(function(){ 4 value_each.push($(this).val()); 5}); 6console.log(value_each); 7 8・・・ 9 10var query = {}; 11var results = _.where(dataArray, query);

全てにチェックを入れた場合value_eachの中身(Chromeのconsoleで表示)

(5) ["1", "2", "2", "8", "10"] 0:"1" 1:"2" 2:"2" 3:"8" 4:"10" length:5 __proto__:Array(0)

json

1{ 2 "data":[ 3 { 4 "name":"みかん", 5 "color":"オレンジ", 6 "best":"10月", 7 "sort01":"1", 8 "sort02":"10", 9 }, 10 { 11 "name":"ぶどう", 12 "color":"紫", 13 "best":"8月", 14 "sort01":"2", 15 "sort02":"8" 16 }, 17 ... 18 ] 19}

現在上記のようになっています。(Underscore.jsを使用しています。)

最終的にはチェックされた項目のみを画面に出力をさせたいのですが、
consoleの中が現在

0:"aaa"

のようになっているのですが、
ここの値を最終的に
query の中に{sort01:"2",sort02:"8"}のような形で入れたいため
上記のような

0:"1"
1:"2"
2:"2"
3:"8"
4:"10"

という形ではなく

sort01:"1"
sort01:"2"
sort02:"2"
sort02:"8"
sort02:"10"

上記のような形にしたいのです。
ご教示お願いします。

追記
コードなど訂正しております。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/10 10:46

「みかん」とか「ぶどう」がなんの説明もなく登場していてどうデータを加工するのかルールが読み取れません。
m.ts10806

2018/07/10 22:15

いきなりコードが出てきていては丸投げ感しか残りません。そのコードを組むことになった背景や要件などをきちんと冒頭に追記してください(質問テンプレートを活用してください)
MeB

2018/07/11 01:18

Kosuke_Shibuyaさん みかんやぶどうは直接jsonファイルに書いているもので質問用に中身を変えたものになります。またjsonの中身は特に加工しません。わかりにくく申し訳ございません。
MeB

2018/07/11 01:19

mts10806さん テンプレートあることを知りませんでした。今後活用します。
MeB

2018/07/11 01:29

最初に表示されていなかったので知りませんでした。再度「質問する」をして見ましたが「基本テンプレート」を押さないと表示されませんでした。
guest

回答2

0

ベストアンサー

今のデータからだとこのくらいまでですかね?

javascript

1$(function(){ 2 $('#form').on('submit',function(e){ 3 e.preventDefault(); 4 var n=$('[name="checkbox[]"]:checked').map(function(){ 5 var ele=$(this).closest('label').siblings('p').text(); 6 var obj={}; 7 obj[ele]=$(this).val(); 8 return obj; 9 }).get(); 10 console.log(n); 11 }); 12});

html

1<form id="form" name="search" action=""> 2 <div> 3 <p>element01</p> 4 <label><input name="checkbox[]" type="checkbox" value="aaa">チェックボックス</label> 5 <label><input name="checkbox[]" type="checkbox" value="bbb">チェックボックス</label> 6 </div> 7 <div> 8 <p>element02</p> 9 <label><input name="checkbox[]" type="checkbox" value="ccc">チェックボックス</label> 10 <label><input name="checkbox[]" type="checkbox" value="ddd">チェックボックス</label> 11 <label><input name="checkbox[]" type="checkbox" value="eee">チェックボックス</label> 12 </div> 13 <button class="submit" value="検索">検索</button> 14</form>

投稿2018/07/11 00:52

yambejp

総合スコア114814

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2018/07/11 00:53

みかんやぶどうがどこからでてきて、どういうルールで振り分けられるか 題意がよみとれません
MeB

2018/07/11 01:17

ご回答ありがとうございます。 すみません。みかんやぶどうは直接jsonファイルに書いているもので質問用に中身を変えたものになるので、 特にルールなどはありませんでした。 また、質問に乗せたhtmlが悪かったため追記します…。すみません。
guest

0

value_eachが配列のままではインデックスと値しか取得できないので、オブジェクトにしてみてはいかがでしょうか。
値は取れているのでp要素の値をキーとして代入したらいいと思います。

投稿2018/07/10 13:51

aruto

総合スコア175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MeB

2018/07/11 01:13

ご回答ありがとうございます。 こういう場合はオブジェクトにすればよいのですね…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問