protectDefault в Safari - PullRequest
       4

protectDefault в Safari

1 голос
/ 31 мая 2011

У меня есть текстовое поле с кодом;

<input type="text" maxlength="5" size="2" value="1" id="paging_textbox">

Теперь на этой странице нет тега кодировки формы.

Когда пользователь вводит это текстовое поле и нажимает Enter, таблица на этой странице обновляется (посредством вызова AJAX)

В Safari поведение немного отличается в том смысле, что, хотя он корректно обновляет таблицу, он как бы перезагружает страницу (думает, что отправляет форму, но не уверен, как, поскольку нет тега формы), и сбрасывает значение текстового поля обратно в "1"

Как я могу предотвратить это в Safari?

Пожалуйста, помогите мне. Спасибо.

Ответы [ 3 ]

5 голосов
/ 31 мая 2011

Просто чтобы быть уверенным, завершите функцию обратного вызова с помощью return false.Это должно сработать.

 function(e) {
     e.preventDefault();
     // some awesome code
     return false;
 }

О, и еще одна вещь: в будущем, чтобы избежать такого случайного поведения ... уважайте стандарты, используйте form:)

0 голосов
/ 31 мая 2011

используйте event.preventDefault() или верните значение False, которое поможет вам.

0 голосов
/ 31 мая 2011

в jQuery

//Press Enter in INPUT moves cursor to next INPUT
$('#form').find(':input').keypress(function(e){
    if ( e.which == 13 )
    {
        $(this).next().focus();  //Use whatever selector necessary to focus the 'next' input
    }
});

JAVASCRIPT

<script language="JavaScript">
function disableEnterKey(e)
{
     var key;
     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox
     if(key == 13)
          return false;
     else
          return true;
}
</script>

и напишите

<input type=”text” name=”mytext” onKeyPress=”return disableEnterKey(event)”>
...