在javascript中更改另一个时更改输入

时间:2012-07-31 13:10:49

标签: javascript html mysql

难以定义标题^^

我想要输入字段。例如:一个键入颜色(字符串),另一个键入颜色代码(varchar)。

喜欢这样:|绿色| |#657EC9 | (只是随机颜色代码)

我不想学习如何找到颜色代码,但是如何将值或变量与另一个匹配。这只是一个例子。

我想知道的是当我填写第二个时,我以最好的方式自动生成其中一个字段。当我在第一个字段中输入“green”时,我希望代码自动出现在第二个字段中,反之亦然。我只想做几种颜色。

我是PHP,HTML和Javascript的新手,可能需要一些关于如何处理问题的好建议。

谢谢

1 个答案:

答案 0 :(得分:1)

我倾向于只将值映射到对象文字,所以:

var colors = {
    Green:'#657EC9',
    Red:'#00ffff'
}

现在,您可以使用colors[fieldInputVal]获取您的价值,其中fieldInputVal可能是'绿色'或者' Red'虽然你当然要测试那里是否有房产。对象文字是我很少在JS中找到switch语句用法的主要原因。

至于事件JS,我会变得懒惰并且使用JQuery而不是解释attachEvent与addEventListener,如果您支持IE8或更低版本,这将是必要的。如果你想自己规范化并跳过JQuery,请查看“addEvent contest'在quirksmode.org上

$('.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]);
    }
} );

注意:我没有为语法错误测试此代码。

如果您想要更灵活并接受“绿色”'或者' Green',我会在将第一个字符用于查找之前将其大写。要对每个字符添加进行查找,您必须查找keyup或keydown事件(我更喜欢使用keyup来避免在有人按下键时断开浏览器)。