Что не так с этим кодом JavaScript? - PullRequest
0 голосов
/ 29 марта 2011
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" />

Не требуется никаких действий, чтобы заменить «привет» красным «привет».

Ответы [ 3 ]

1 голос
/ 29 марта 2011

Вы пропускаете открытие <до интервала, например.Кроме того, я не знаю, можете ли вы вложить HTML внутри элемента ввода.Лучшим способом было бы включить класс / стиль, который делает текст красным, если значение == 'hi'. </p>

1 голос
/ 29 марта 2011
  1. Вы используете переменную a, которая нигде не объявлена, я предполагаю, что вы имеете в виду input
  2. Лучшим вариантом было бы использовать onkeyup, которая вызовет событие, как тольковы набираете hi
  3. После того, как вы сделаете замену, вам нужно присвоить ее чему-то.
  4. Убедитесь, что <script/> находится после элемента, чтобы элемент был готов в дом.

Собрав все это вместе, вы получите:

<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 голос
/ 29 марта 2011

Если вы не пропустите что-то, переменная a не представляет ваше текстовое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...