1

很难定义标题^^

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

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

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

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

我对 PHP、HTML 和 Javascript 非常陌生,可能需要一些关于如何处理问题的好建议。

谢谢

4

1 回答 1

1

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

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 以避免在有人按住键时破坏浏览器)。

于 2012-07-31T13:19:37.390 回答