2016-03-25 6 views
0

2つのドロップダウンがあります。プロダクト1のドロップダウンとプロダクト2のドロップダウン。 ドロップダウンの値は、重要度の順番を表します。例えばドロップダウンを同じ値にしないようにする

:製品1の場合 enter image description here

、私は注文1を選択した場合、その製品2のドロップダウンは 自動的に2(アウトカムAの結果)を注文するように設定する必要があります

もし私がプロダクト2から開始し、ドロップダウン値をOrder に設定すると、プロダクト1のドロップダウンが自動的にOrder 2に設定されます(結果Bの結果)

私は、一度選択するとドロップダウンの値が無効になるいくつかの例を見つけました。ユーザーが自分の選択肢をリセットする自由を持っている可能性があるので、私はそのような行動を検討していません。すべての価値が常に利用可能である必要があります。

オンイベントChangeは、適切な値を適切なドロップダウンに設定するだけです。

は、これまでのところ(私は多くを持っていない)、私は次のようにあります

<select id="drp1" name="drp1" class="drp"> 
    <option value="1">Order 1</option> 
    <option value="2">Order 2</option> 
</select> 

<select id="drp2" name="drp2" class="drp"> 
    <option value="1">Order 1</option> 
    <option value="2">Order 2</option> 
</select> 

$("select.drp").on('change', function() { 
    var val = $(this).val(); 
    console.log(val); 

    //Figure out which dropdown triggered the change event. 
    //Let its current value selected but now change the dropdown that didn't triggere the change event with another value 
}); 
+0

あなたははい、これは私が何を意味するのかであるイベント –

答えて

0

はあなたが何を意味するか、このですか?

$("select.drp").on('change', function() { 
 
    
 
    var selectedDropDown = $(this).attr("id"); //get the ID of the currently selected drop down 
 
    
 
    var selectedValue = $(this).val(); //get the value of the currently selected drop down 
 
    
 
    var otherDropDown = (selectedDropDown == "drp1") ? "drp2" : "drp1"; //get the id of the other drop down 
 
    
 
    var otherValue = (selectedValue == 1) ? 2 : 1; //get the value that we want the other drop down to be 
 
    
 
    $("#" + otherDropDown).val(otherValue); //set the other drop down to the opposite of the current drop down. 
 
    
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="drp1" name="drp1" class="drp"> 
 
    <option value="1">Order 1</option> 
 
    <option value="2">Order 2</option> 
 
</select> 
 

 
<select id="drp2" name="drp2" class="drp"> 
 
    <option value="1">Order 1</option> 
 
    <option value="2">Order 2</option> 
 
</select>

+0

をトリガしたドロップダウン把握する$(この).ATTR( "ID")を使用することができます。ここでは

JSFiddle

はコードです。ちなみに... 3番目のドロップダウンが表示されることはほとんどありませんが、これをより一般的なものにして2つのドロップダウンのみをチェックする方法を知っていますか?ありがとうございました – Vlince

+0

どのロジックを従う必要があるかを知る必要があります。つまり、ドロップダウン1でオプション1を選択した場合は、ドロップダウン2をオプション2または3または4にし、ドロップダウン3を2にするか、 3または4?シナリオを投稿したい場合は、私はいくつかのガイダンスを提供することができます。 –

+0

私はあなたが何を意味するのか見てみましょう...ユーザーがdropdown1で値を選択すると、ドロップダウン2またはドロップダウン3で選択された値が何になるかを決めることは不可能です。しかし...ドロップダウン2で項目を選択すると、それが最後のドロップダウンであるためdropdown3をあらかじめ選択することができます。あなたはどこにこのような例があるのか​​知っていますか? – Vlince

1

ので、ロジックがあります。

文書の準備ができたら、オーダー2にセカンドセレクトボックスを作成します。ユーザーがクリックすると、選択されたドロップダウンが検出され、選択されていないドロップダウンには他の値が適用されます。

$(document).ready(function(){ 
 
    $('#drp2').val(2) 
 
$("select.drp").on('click', function() { 
 
    var val = $(this).val(); 
 
    console.log(val); 
 
    if(val == "1") { 
 
     $(".drp").not(this).val(2); 
 
    } 
 
    else { 
 
     $(".drp").not(this).val(1); 
 
    } 
 
}); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="drp1" name="drp1" class="drp"> 
 
    <option value="1">Order 1</option> 
 
    <option value="2">Order 2</option> 
 
</select> 
 

 
<select id="drp2" name="drp2" class="drp"> 
 
    <option value="1">Order 1</option> 
 
    <option value="2">Order 2</option> 
 
</select>

+0

はい、この解決策も.not()と似ています。 Btw、私はあなたの答えに間違いがあるのではなく、Graham Ritchieが最初に答えたからではなく、正しいものとしてあなたの答えを記していませんでした。それが理由です。しかし、私にこれを見せてくれてありがとう、私はそれが好きです。 – Vlince

+0

haha​​ nvm。これがjQueryとコーディングが大好きな理由です。多くの方法が1つの問題を解決します。 :) –

0

あなたはフィドルの下にチェックしてみてくださいために、私はただの例を準備します。

$("select.drp").on('change', function() { 
    var val = $(this).val(); 
    console.log(val); 
    var selectedid=$(this).attr("id"); 

    var selectedIndex = $("select#"+selectedid).prop('selectedIndex'); 
// alert(selectedIndex); 
    if(selectedid=="drp1") 
    { 
     if(selectedIndex==0) 
     { 
     $("select#drp2").prop('selectedIndex',1); 
     } 
     else 
     { 
     $("select#drp2").prop('selectedIndex',0); 
     } 

    } 
    else 
    { 
    if(selectedIndex==0) 
     { 
     $("select#drp1").prop('selectedIndex',1); 
     } 
     else 
     { 
     $("select#drp1").prop('selectedIndex',0); 
     } 

    } 

    //Figure out which dropdown triggered the change event. 
    //Let its current value selected but now change the dropdown that didn't triggere the change event with another value 
}); 
関連する問題