Как вызвать функцию JavaScript из текстового поля без кнопки отправки? - PullRequest
0 голосов
/ 05 января 2012

Я создал страницу HTML с некоторым кодом JavaScript.Вот код

   <script type="text/javascript">
     function doIt(){
        window.location = document.getElementById('url').value;
    }
   </script>
   <input type="text" id="url" />

Я хочу, чтобы когда кто-то нажимал ввод после ввода URL.Страница перенаправляется на указанный URL автоматически.Как я могу это сделать?Пожалуйста, предложите мне код

Ответы [ 6 ]

1 голос
/ 05 января 2012
<input type="text" id="url" onblur="window.location.href='this.value'" />

выше указано, что если фокус снят, как, например, нажать клавишу

, а затем для ввода написать обработчик onkeydown

<script type="text/javascript">
  document.getElementById('url').onkeydown = function(e) {
      var keyCode = e.keyCode || e.which;

     if (keyCode === 13) {
       window.location.href = this.value;
     }
 }


</script>
1 голос
/ 05 января 2012

Вот решение: http://jsfiddle.net/YBLQx/1/

JS

(function () {

    var textField = document.getElementById('foo');

    function addHandler(el, event, handler) {
        if (el.addEventListener) {
            el.addEventListener (event, handler, false);
        } else if (el.attachEvent) {
            el.attachEvent (event, handler);
        }
    }

    addHandler(textField, 'keydown', textEntered);

    function textEntered(event) {
        if (event.keyCode === 13) {
            window.location = textField.value;
        }
    }
}());

HTML

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

С уважением!

1 голос
/ 05 января 2012

Используйте код ниже:

<html>
<html>
<head>
<script type="text/javascript">
     function doIt(){     
       window.location.href = document.getElementById('url').value;
    }   
    document.onkeypress=function(e){
        var e=window.event || e;        
        if(e.keyCode===13) doIt();       
    }
</script>
</head>
<body>
<input type="text" id="url" value="http://www."/> 
</body>
</html>
1 голос
/ 05 января 2012

см. Живое демо на http://jsfiddle.net/qiao/RGqwD/2/

var input = document.getElementById('url');
input.onkeydown = function(e) {
  var key = e.keyCode || e.which;
    if (key == 13) {
      window.location = input.value;
    }
};
1 голос
/ 05 января 2012

Если вы не используете jQuery, ниже приведен полный пример:

function addEvent(obj, type, fn) {
    if (obj.attachEvent) {
        obj['e' + type + fn] = fn;
        obj[type + fn] = function() {
            obj['e' + type + fn](window.event);
        }
        obj.attachEvent('on' + type, obj[type + fn]);
    } else obj.addEventListener(type, fn, false);
}

addEvent(window, 'load', function() {
    addEvent(document.getElementById('url'), 'keyup', function(e) {
        var code = (e.keyCode ? e.keyCode : e.which);

        if (code == 13)
            window.location.href = this.value;
    });
});

Пример - http://jsfiddle.net/4PDt4/

Кредиты для кода addEvent : - http://ejohn.org/projects/flexible-javascript-events/

0 голосов
/ 05 января 2012

Вам необходимо прикрепить обработчик события нажатия клавиши к текстовому полю.В вашем обработчике событий вы бы проверили, была ли нажата клавиша ввода.Если так, сделайте перенаправление.Поиск обработчиков событий.

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