Как заставить кнопку «Ввод» делать что-то еще, а не отправлять форму? - PullRequest
1 голос
/ 01 ноября 2011

У меня есть форма, в которой я использую автозаполнение, и ссылка.Когда какой-либо текст вводится в форму и щелкается ссылка, содержимое текста попадает в текстовую область.

Вы можете видеть, как он работает на этой тестовой странице: http://www.problemio.com/test.php

Проблема, с которой я столкнулся, заключается в том, что когда курсор находится в текстовом поле и нажата кнопка «ввод», форма отправляется.Но более интуитивно понятным является то, что щелкают ссылку «добавить категорию».

Есть ли способ изменить положение вещей так, чтобы, когда курсор находился в текстовом поле и нажата клавиша ввода, страница действовала так, как если бынажата ссылка для «добавления категории»?

Спасибо !!

Ответы [ 3 ]

2 голосов
/ 01 ноября 2011

Вы можете отменить нажатие Enter в форме:

<script type="text/javascript">

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}

document.onkeypress = stopRKey;

</script> 
1 голос
/ 01 ноября 2011

Вы можете добавить событие onsubmit в свой тег формы.Так это выглядит так:

<form onsubmit="return doSubmit();">

Тогда в вашем JavaScript вы можете иметь:

function doSubmit() {
    //Do all your JS stuff here
    document.getElementById("addCategoryId").click(); //Not sure if this is completely right, but that will click your addCategory button/link as long as the ID is set correctly.

    return false; //Don't submit form
}
1 голос
/ 01 ноября 2011

Как насчет использования обычной кнопки вместо отправки.Вы можете привязать клик к нему и делать то, что вы хотите, даже отправив форму.

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