前提・実現したいこと
登録ボタンをクリックした際に、「条件1、条件2、論理条件(AND,OR,NOT)を取得したいと思っています。
試したソースコードでは上手く取得できずこちらに質問させていただきました。
該当のソースコード
html
1<div id="keyword"> 2 <div class="Field01"> 3 <div style="display:none;"> 4 <select name="cond1"> 5 <option value="0">AND</option> 6 <option value="1">OR</option> 7 <option value="2">NOT</option> 8 </select> 9 </div> 10 <p>条件1</p> 11 <div> 12 <select name="cond2" class="inputT01"> 13 <option value="0">aaa</option> 14 <option value="1">bbb</option> 15 <option value="2">ccc</option> 16 </select> 17 </div> 18 <p>条件2</p> 19 <div> 20 <input type="text" name="cond3" placeholder="keyword"> 21 </div> 22 </div> 23 <div class="Field01"> 24 <div> 25 <select name="cond1"> 26 <option value="0">AND</option> 27 <option value="1">OR</option> 28 <option value="2">NOT</option> 29 </select> 30 </div> 31 <p>条件1</p> 32 <div> 33 <select name="cond2" class="inputT01"> 34 <option value="0">aaa</option> 35 <option value="1">bbb</option> 36 <option value="2">ccc</option> 37 </select> 38 </div> 39 <p>条件2</p> 40 <div> 41 <input type="text" name="cond3" placeholder="keyword"> 42 </div> 43 </div> 44 <div class="Field01"> 45 <div> 46 <select name="cond1" class="inputT01"> 47 <option value="0">AND</option> 48 <option value="1">OR</option> 49 <option value="2">NOT</option> 50 </select> 51 </div> 52 <p>条件1</p> 53 <div> 54 <select name="cond2" class="inputT01"> 55 <option value="0">aaa</option> 56 <option value="1">bbb</option> 57 <option value="2">ccc</option> 58 </select> 59 </div> 60 <p>条件2</p> 61 <div> 62 <input type="text" name="cond3" placeholder="keyword"> 63 </div> 64 </div> 65</div> 66<input type="button" name="regist" id="regist" value="登録">
試したソースコード
jQuery
1$(function() { 2 3 $("#regist").click(function(e) { 4 var result = []; 5 $('#keyword').find('div.Field01').each(function(index, condition) { 6 result.push({ 7 c1 : $(this).children('div:eq(0)').children(':input:visible').children(':selected').val(), 8 c2 : $(this).children('div:eq(1)').children(':input').children(':selected').val(), 9 c3 : $(this).children('div:eq(2)').children(':input').val() 10 }); 11 }); 12 }); 13 14});
問題点
試したソースコードで、論理条件のみは取得できているのですが
条件1、条件2のデータを、3つとも「undefined」となっており指定の仕方が間違っていると思われます。
お手数をお掛けしますが、ご確認よろしくお願いします。
なにがどうヒットして想定ではどうなっているはずなのでしょう?
取得する値としては、下記のような値の取得を想定しています。
result = [
{ c1: undefined, c2: 1 , c3: '入力した文字列' },
{ c1: 2, c2: 2 , c3: '入力した文字列' },
{ c1: 0, c2: 0, c3: '入力した文字列' }
];
こちらで回答になっていますでしょうか。
命題と想定値が違います
最初のC1はundefinedだとして、c2も2個目(実質3個目)のdivにあるinputは
input要素だから:selectedされるものはありません
ちゃんとご自身のソースをよく推敲してみて下さい
ご指摘ありがとうございます。
.Field01クラス内の、div指定順番が違っていました。
'div:eq(2)'
'div:eq(4)'
を修正。
.Field01内に、pタグ要素もあるのでそちらもカウントしておりました。
色々ご指摘頂きありがとうございました。
回答2件
あなたの回答
tips
プレビュー