jQuery выбирает «enter» в определенных текстовых элементах и ​​перехватывает событие отправки родительской формы - PullRequest
0 голосов
/ 30 ноября 2011

Когда я нахожусь в определенных текстовых полях, я хочу иметь возможность остановить распространение нажатия клавиши «ввод».

В основном, пока я вхожу, мне не нужна форма, котораяони должны представить, и мне нужно перехватить это.(Форма разбита на «окна». Если они не в последнем окне (.win2), то я не хочу, чтобы они могли нажимать кнопку «Ввод и отправка формы», не понимая, что они только в первомwindow.

Надеюсь, это имеет смысл.

Вот что у меня есть:

$(".win1 :input").keyup(function(e){
    if(e.which === 13){
        return false;
    }
});

К сожалению, это не работает. Событие keyup запускается, но я неНе думаю, что return false работает надлежащим образом. Использование e.preventDefault(); e.stopPropagation(); также не работает. Существует ли простой способ предотвратить запуск события submit в форме путем прослушивания нажатий клавиши «ввод»?

Спасибо

Ответы [ 2 ]

5 голосов
/ 30 ноября 2011

Вы можете заменить ваш тип ввода = «отправить» обычной кнопкой, которая будет делать что-то вроде $("form").submit();, если данные допустимы, и в противном случае отправка никогда не инициируется.

Обычно это должно работать:

$(".win1 :input").keypress(function(e){
  if(e.which === 13){
        e.preventDefault();
        e.stopPropagation();
    }
});
0 голосов
/ 30 ноября 2011

Может быть, вы можете использовать этот пример:

   <html>
  <head>
  <script type="text/javascript">
  function CancelSubmit(e)
  {
    var keynum
    var ret;
    if(window.event) // IE
    {
        keynum = e.keyCode
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which
    }

    if(keynum == 13)
    {
        var content = document.getElementById("container").innerHTML;
        document.getElementById("container").innerHTML =   content + "<p>submit canceled</p>";
        ret = false;
    }
    else
    {
        ret = true;
    }
    return ret;

  }
  </script>
  </head>
  <body>
  <h1>CANCEL SUBMIT</h1>

    <form method="post" action="Test-Submit.html">
    <input type="text" onkeypress="return CancelSubmit(event)" />
    <input type="text" onkeypress="return CancelSubmit(event)" />
    <input type="submit" value="submit"/>
    </form>
    <div id="container"></div>
  </body>
  </html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...