2011-03-28 88 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',則文本會變爲紅色。