Включить отключенное нажатие клавиши? - PullRequest
2 голосов
/ 05 сентября 2010

Я пытаюсь предотвратить двойную отправку, используя клавишу ввода в моей форме, но я не могу снова включить нажатие после отправки данных. Вот часть моего кода:

$(".adauga-clasa").submit(function() {
  var adaugaClasa = $('input[type=text]', this);

  adaugaClasa.keypress(function(event) { if (event.keyCode == '13') { return false; } });

  $.ajax({
    type: "POST",
    url: "/clase/do-add",
    data: dataString,
    dataType: "json",
    success: function(data) {
      // this doesn't work
      adaugaClasa.keypress(function(event) { if (event.keyCode == '13') { return true; } });           
    }
});

Ответы [ 3 ]

2 голосов
/ 05 сентября 2010

Вам необходимо .unbind() предыдущий обработчик событий (который все еще связан и все еще возвращает false до вашего нового обработчика), например:

adaugaClasa.unbind('keypress');

При этом нет необходимости добавлять новый обработчик keypress, достаточно будет просто удалить старый.

1 голос
/ 05 сентября 2010

Почему у вас нет флага логической переменной?

var form_submitted = False

Установите значение True при отправке и проверьте его при отправке.

0 голосов
/ 05 сентября 2010

Это не работает, потому что вы не отменяете предыдущую функцию. Вы просто добавляете новый. Вам нужно использовать .unbind('keypress').

...