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

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

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

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

jQuery

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

Q&A

解決済

2回答

3492閲覧

Jquery でinput のvalue値を取得しようとするとundefinedになってしまう

hidepon

総合スコア206

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2017/08/07 09:39

一覧をチェックして重複登録しないように仕組みを検討してます。

<div id="member"> <input type="checkbox" class="members" value="200"> <input type="checkbox" class="members" value="250"> <input type="checkbox" class="members" value="300"> <input type="checkbox" class="members" value="350"> <input type="checkbox" class="members" value="400"> <input type="checkbox" class="members" value="450"> <input type="checkbox" class="members" value="500"> </div>

このような感じの項目があります。
他のセクションから項目を選択して上記のvalue値と重複しないようであれば
追加したいと思っています。

//例えば引数で var val="250"; var row_num = $("div#member input").length; var j = 0; for(var i = 1;i <= row_num ;i++){ val_sb = $("div#member input:eq(" + i + ")").val(); if(val == val_sb){ j++; } } if(j>0){ alert("重複しています"); }else{ alert("登録できます") }

といった感じの仕組みです。
値を取得しようとしましたがundefinedになってしまいます。

count やlengthを使うなどの情報があり試してみましたが、力業でやってみています。
宜しくおねがいいたします。

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

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

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

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

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

kei344

2017/08/07 15:41

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。また、解決されていないなら状況を質問文に追記ください。
hidepon

2017/08/07 17:41

申し訳ございません。ご回答を参考にプログラムをいじっていました。解決済みにします。ご指摘有難うございました。
guest

回答2

0

ベストアンサー

250は最初からあるので、とりあえず220を追加してみました

javascript

1$(function(){ 2 $('input[type=button][value=220追加]').on('click',function(){ 3 if($('#member .members').filter(function(){return $(this).val()=="220";}).length>0){ 4 alert("重複しています"); 5 }else{ 6 $('#member').append($('<input>').attr({type:'checkbox'}).val('220').addClass('members')); 7 alert("追加しました"); 8 } 9 }); 10}); 11

HTML

1<div id="member"> 2 <input type="checkbox" class="members" value="200"> 3 <input type="checkbox" class="members" value="250"> 4 <input type="checkbox" class="members" value="300"> 5 <input type="checkbox" class="members" value="350"> 6 <input type="checkbox" class="members" value="400"> 7 <input type="checkbox" class="members" value="450"> 8 <input type="checkbox" class="members" value="500"> 9</div> 10 11<input type="button" value="220追加">

投稿2017/08/07 11:06

yambejp

総合スコア114843

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

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

zohnam

2017/08/07 11:50

そこまで書いたなら if($('#member .members[value=220]').length>0){ でいいですやんw
yambejp

2017/08/07 12:06

zohnamさん。ありがとうございます。 たしかに、checkboxのvalueはそれでよさそうですね type=textだとちょっと事情が違うので汎用的な書き方しちゃいました
hidepon

2017/08/07 12:10

ご返答有難うございます。す、すごい超高レベルの会話・・・ついて行けない・・・orz.
guest

0

質問内容だけから判断すると、

javascript

1for(var i = 1;i <= row_num ;i++){

この部分がおかしいですね。

javascript

1for(var i = 0;i < row_num ;i++){

こうしなければなりません。
最後の1回は存在しないinputのvalueを取得しようとしているため、val_sbがundefinedになっているのでしょう。
とは言え、前回の質問ではこのミスをしていないのですから、事情があって1個ずらしているのだとも思えますが…?

投稿2017/08/07 09:52

zohnam

総合スコア1441

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

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

hidepon

2017/08/07 10:20

ご返答有難うございます。スミマセン。なぜか単純ミスです。お恥ずかしい限りです。こういう時にfindみたいな感じの記述が出来ればカッコいいかなと思って考えてみたんですが、どうも無理っぽくて、力業にしました。本当に有難うございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問