私は値をオブジェクトリテラルにマップする傾向があるので、次のようになります。
var colors = {
Green:'#657EC9',
Red:'#00ffff'
}
colors[fieldInputVal]
これで、fieldInputValが「Green」または「Red」の場合に値を取得できますが、もちろん、実際にそこにプロパティがあるかどうかをテストする必要があります。オブジェクトリテラルは、JSでswitchステートメントを使用することがめったにない主な理由です。
イベントJSについては、IE8以下をサポートしている場合に必要となるattachEventとaddEventListenerについて説明するのではなく、怠惰になってJQueryを使用します。自分で正規化してJQueryをスキップする場合は、quirksmode.orgで「addEventcontest」を検索してください。
$('.input_one').change( function(){
//note: only fires after the field loses focus - you tab out or focus another field
var inputVal = $(this).val();
if(colors[inputVal] !== undefined){
$('.input_two').val(colors[inputVal]);
}
} );
注:このコードの構文の誤りについてはテストしていません。
より柔軟に「緑」または「緑」を受け入れたい場合は、ルックアップに使用する前に最初の文字を大文字にします。すべての文字追加でルックアップを実行するには、keyupまたはkeydownイベントをルックアップする必要があります(誰かがキーを押したときにブラウザーが壊れないように、keyupを使用することをお勧めします)。