2016-08-14 4 views
-1

これは私がこれまで構築してきたものである:https://plnkr.co/edit/fnhKUhuTYjUTQgJLnZoT?p=previewJavascriptの2ドロップダウンメニューからの選択値に応じた表示値?

私は2つのドロップダウンメニューから、ユーザーの2つの選択肢に依存inputテキストボックスに値を表示したいです。

var values = [1, 2, 0.1, 1, 3, .2, 2, 3,.3]; 

を第一選択は1で、第二の選択肢は、私はinputテキストボックスが0.1を表示したい、2の場合:私は、その値がここvalues配列から来てほしいです。逆も同様です。第1選択肢が2、第2選択肢が1の場合は、0.1を出力します。

ユーザーが両方のメニューに同じ値を選択した場合は、何も起こりません。ユーザーが両方のメニューに対して2を選択した場合、出力がないようにします

どのようにプログラムすることができますか?

編集:私はおそらく、最初にこのようなハッシュマップにvalues配列を変換する必要があります。

var values = [(1, 2): 0.1, (1, 3): .2, (2, 3): .3]; 
+0

私は完全に理解できません。あなたは1と2の入力に基づいて配列からの出力(0.1)をどのように決定しようとしていますか? –

+0

私はこれをEDIT – user5739619

答えて

1

を、私はあなたがそれはあなたのPlunkに含まれていたので、あなたは私の溶液中でのjQueryを使用して、私を気にしないことを願っています。

var $selects = $('select'); 
var $output = $('#pred'); 

まず出力値の入力ペアのマップを作成します。

var values = { 
    '1,2': 0.1, 
    '1,3': 0.2, 
    '2,3': 0.3 
}; 

次に、選択メニューでchangeイベントを聞きます。私のchangeハンドラでは、selectの値を数値の配列にマップします。次に、この配列をソートして結合することで、文字列のペアが昇順になり、カンマで区切られます。 a key、私のvaluesオブジェクトのキーと同じです。

最後に、key$outputの値をvaluesの値に設定します。 values[key]undefinedの場合は、デフォルトで空の文字列になります。

$selects.on('change', function() { 
    var key = $selects.map(function (index, el) { 
     return Number($(el).val()); 
    }) 
     .get() 
     .sort() 
     .join(','); 

    $output.val(values[key] || ''); 
}); 
関連する問題