Ошибка с <input>triggerWord и Javascript - PullRequest
0 голосов
/ 04 мая 2020

Я хочу загрузить страницу http://example.com, набрав trigger в текстовом поле <input>. Со временем я внес некоторые изменения, и в какой-то момент это, похоже, сработало, но теперь это не так.

Как я могу заставить эту работу работать? Какие ошибки мне не хватает?

window.onload = function() {
  var input = document.getElementById("idname").focus();
}

$(function() {
  var triggerWords = ['trigger'];
  $('#indexinput').keyup(function() {
    for (var i = 0; i < triggerWords.length; i++) {
      if ($(this).val() == triggerWords[i]) {
        window.open("http://example.com/", "_self");
      }
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="idname" type="text" size="20" onkeyup="myFunction(event)" autofocus>

Ответы [ 3 ]

0 голосов
/ 04 мая 2020

У вас неверный идентификатор в селекторе запросов. В нем написано $ ('# indexinput'), но должно быть $ ('# idname').

Попробуйте использовать следующий фрагмент:

$(function() {
    var triggerWords = ['trigger'];
    $('#idname').keyup(function() {
        for (var i = 0; i < triggerWords.length; i++) {
            if ($(this).val() == triggerWords[i]) {
                console.log('open new page');
                window.open("http://example.com/", "_self");
            }
        }
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="idname" type="text" size="20" autofocus>

Обратите внимание, что window.open не работает в фрагментах кода, поэтому я добавил часть console.log.

Я также убрал эту ненужную часть:

window.onload = function() {
  var input = document.getElementById("idname").focus();
}
0 голосов
/ 04 мая 2020

Нет необходимости в myFunction и id было неверно

$(function() {
  var triggerWords = ['trigger'];
  $('#idname').keyup(function() {
    for (var i = 0; i < triggerWords.length; i++) {
      if ($(this).val() === triggerWords[i]) {
        window.open("https://google.com/", "_self");
      }
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="idname" type="text" size="20" autofocus>
0 голосов
/ 04 мая 2020

Вы регистрируетесь на keyup два раза, следующий код будет работать. Не нужно регистрировать его на javascript, если вы упоминаете его в строке HTML.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="idname" type="text" size="20" onkeyup="myFunction(event)" autofocus>

<script>
  window.onload = function() {
    var input = document.getElementById("idname").focus();
  }
  
  function myFunction(event) {
      var triggerWords = ['trigger'];
      for (let i = 0; i < triggerWords.length; i++) {
        if (event.target.value == triggerWords[i]) {
          window.open("http://example.com/", "_self");
          break;
        }
      }
  }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...