Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Выполнение функции Enter-ом


Автор: total08 16.3.2014, 17:57
Здравствуйте. Подскажите где ошибка. Есть функция calcRoute(). Нужно чтоб она выполнялась по нажатию клавиши ентер. Нашел в интернете код и вставил с некоторыми изменениям. Вот что получилось.

Код

<script type="text/javascript"> 
...

function usl(d, e)
{
  if(d != "" && e.keyCode == 13) calcRoute();
  }
</script>


HTML
<body onload="initialize()">
<form>
<div>
<input type="text" name="text" disabled="disabled"> 
<input type="text" size="35" name="end" value="м. Рівне " id="end" onkeypress="usl(this.value, event)"/>
<input name="StreetSearch" type="button" onClick="calcRoute();" value="Знайти" />
</p>  

</div>
</form>
</body>



И все вроди работает но проблема в том что не могу удалить лишние поле для ввода 
HTML
<input type="text" name="text" disabled="disabled">

оно может быть даже отключенным, но как только я его удалю Enter перестает работать. Я уже себе мозги сломал. Я очень плохо знаю javascript и даже не могу представить в чем там проблема. Также прикладываю полностью html Документ.

Автор: ksnk 16.3.2014, 18:34
Что значит - перестает работать?
По нажатии на Enter срабатывает отправка формы. Чтобы этого не происходило, можно добавить вот такое в обработчик клавиатуры
Код

function usl(d, e)
{
    if(d != "" && e.keyCode == 13) {
        calcRoute();
        e.preventDefault();
        return false;
    }
}

Автор: total08 16.3.2014, 18:47
ksnk, Большое спасибо, все работает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)