2011-03-28 63 views
0
var input = document.getElementById("myInput"); 
a.onkeydown = function() { 
    if (a.value.match("hi")) { 
     a.value.replace("hi", "span style='color:red;'>hi</span>"); 
    } 
}; 

<input type="text" id="myInput" /> 

它不采取任何行动来用'hi'代替'hi'。此JavaScript代码有什么问题?

+0

您提出了10个问题,但尚未接受任何答案。请确认您确实理解接受答案的概念....如果您知道如何回复评论,那就是。 ':)'(下面的“添加评论”) – 2011-03-28 23:57:38

回答

1
  1. 您正在使用可变a这是不随地声明,我假定你的意思input
  2. 一个更好的办法是,只要你键入hi
  3. 后你使用onkeyup将触发事件你需要将它分配给某个东西。
  4. 确保<script/>位于元素之后,以便在DOM中准备好元素。


把所有在一起,你会得到这样的:

<input type="text" id="myInput" /> 
<script type="text/javascript"> 
    var input = document.getElementById("myInput"); 

    input.onkeyup = function() { 
     if (input.value.match("hi")) { 
     input.value = input.value.replace("hi", "<span style='color:red;'>hi</span>"); 
    } 
}; 
</script> 

代码示例上jsfiddle

1

除非你丢掉东西,否则变量a不代表你的文本框。

1

您错过了跨度之前的开头<。另外,我不知道您是否可以在输入元素中嵌套HTML。更好的方法是打开一个类/样式,如果值=='hi',则文本会变为红色。