我倾向于将值映射到对象文字,所以:
var colors = {
Green:'#657EC9',
Red:'#00ffff'
}
现在您可以通过colors[fieldInputVal]
fieldInputVal 可能为“绿色”或“红色”的位置获取您的值,尽管您当然必须测试那里是否真的有一个属性。对象字面量是我在 JS 中很少使用 switch 语句的主要原因。
至于事件 JS,我会偷懒并使用 JQuery,而不是解释 attachEvent 与 addEventListener,如果您支持 IE8 或更低版本,这将是必要的。如果您想自己规范化并跳过 JQuery,请在 quirksmode.org 上查找“addEvent 竞赛”
$('.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 以避免在有人按住键时破坏浏览器)。