性格悪い人が優勝

Javascriptでの連動プルダウンですが、以下サイトのように大→中→小と連動していく例はよく見かけるのですが、大に対し、小2つを同時に連動させたいのです。
http://mizuame.sakura.ne.jp/blog_sample/js/jquer …

例)
大[セーター]
小[セーターのサイズ]
小[セーターの色]

上記サイトの例ですと、各プルダウンにIDを指定しているため、ちょっと私の力量(初級です。)では改造して、、、というのは無理でした。
可能でしたらアドバイスいただけないでしょうか?
宜しくお願いいたします。

A 回答 (2件)

こんにちは



例示の内容だと、連動させずにパラで動作しても成立しそうですが・・(笑)

>ちょっと私の力量(初級です。)では改造して、、、
>というのは無理でした。
一般化してあるものをカスタマイズするのはけっこう大変です。
それよりも、ご自分の必要な機能だけのものを直接自作なさったほうが、改造するよりもはるかに簡単ではないかと思います。
一つの連動さえできれば、同時にもう一つの「小」の方も同様に処理すれば良いだけですので・・・

作成方法としてはかなり愚直ですが、このあたりを参考にすれば、比較的簡単に作成できそうに思います。(単純に、2か所の「小」を操作するように変えればよいだけなので・・)
http://ksknet.net/javascript/post_54.html

もう少し要領良く(?)記述なさりたいなら、『javascript 連動 プルダウン/セレクト 作り方』などをキーに検索すると、いろいろな作成方法が見つかると思いますので、それらを参考になさるのも良いかも知れません。
    • good
    • 0
この回答へのお礼

ありがとうございました。参考サイトを見て出来ました!

お礼日時:2017/07/28 16:53

ざっくりこんな感じでデータ管理してはいかがいでしょうか?



<script src="ttp://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
var data={
"a":{
"s1":[
{value:"a1x",text:"text_a1x"},
{value:"a2x",text:"text_a2x"},
{value:"a3x",text:"text_a3x"},
],
"s2":[
{value:"a1y",text:"text_a1y"},
{value:"a2y",text:"text_a2y"},
{value:"a3y",text:"text_a3y"},
],
},
"b":{
"s1":[
{value:"b1x",text:"text_b1x"},
{value:"b2x",text:"text_b2x"},
{value:"b3x",text:"text_b3x"},
],
"s2":[
{value:"b1y",text:"text_b1y"},
{value:"b2y",text:"text_b2y"},
{value:"b3y",text:"text_b3y"},
],
},
"c":{
"s1":[
{value:"c1x",text:"text_c1x"},
],
"s2":[
{value:"c1y",text:"text_c1y"},
{value:"c2y",text:"text_c2y"},
{value:"c3y",text:"text_c3y"},
{value:"c4y",text:"text_c4y"},
],
},
};
$(function(){
$('select[name=l]').on('change',function(){
$('select').filter(function(){return $(this).attr('name').match(/^s(1|2)$/)}).prop({'disabled':$(this).prop('selectedIndex')==0,"selectedIndex":0});
var v=$(this).val();
if(v!=="" && typeof data[v]!=="undefined"){
["s1","s2"].map(function(i){
while($('select[name='+i+']').children().length>1){
$('select[name='+i+']').children().last().remove();
}
data[v][i].map(function(j){
$('select[name='+i+']').append($('<option>').attr('value',j.value).text(j.text));
});
});
}
}).trigger('change');
});
</script>
</script>
<select name="l">
<option value="">------</option>
<option value="a">a_text</option>
<option value="b">b_text</option>
<option value="c">c_text</option>
</select>
<select name="s1" disabled>
<option value="">------</option>
<option value="">------</option>
<option value="">------</option>
<option value="">------</option>
</select>
<select name="s2" disabled>
<option value="">------</option>
</select>
    • good
    • 0
この回答へのお礼

ありがとうございました。
http://ksknet.net/javascript/post_54.html を参考にしましたらあっさり出来ました。

お礼日時:2017/07/28 16:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!