2013-12-11 8 views
0

Я предпочитаю передавать значения формы с помощью AJAX, нажав «Return», и все мои настройки, которые я делал ранее, работают, но сегодня он перестает работать. Вот шаги, которые я выполнял довольно долго.Почему моя форма перезагружает страницу?

  1. Включить JQuery
  2. настройки мою форму
  3. Предотвращение его формы представления
$(document).ready(function(){ 
    $(document).on('keyup', myFormSelector, function(event){ 
    if (event.keyCode === 13) { 
     event.preventDefault(); 
    } 
    }); 
}); 
+0

Вы изменили версии jQuery? – qwertynl

+1

изменить событие на keydown –

+0

является 'myFormSelector' где-то в том же объеме? –

ответ

2

изменить событие KeyDown и он будет работать.

+0

keydown работает, но почему он не работает с 'keyup' больше? –

+2

Когда вы нажимаете клавишу ввода, запускаются два события. Сначала это keydown, а второй - keyup. Но перед запуском функции keyup браузер отправляет форму. –

+0

хорошо, это похоже на логику –

1

попытаться отключить поведение по умолчанию из события отправки и добавить элемент SUBMIT (display: none).

Если форма имеет элемент submit, ключ возврата работает так, как вы хотите.

Howto отключить событие представляет:

$('#myForm').submit(function(e) { 
    e.preventDefault(); // disabling default submit with reload. 
    // ajax code here 
}); 

, если это не сработает, у можете попробовать это также:

<form id="myForm" onsubmit="return false"> ... </form> 

Возвращение ложь делает остановки подачи слишком.

При использовании элементов отправки вместо keyup/keydown вы сможете добавлять на свою страницу несколько форм с желаемым поведением.

+0

спасибо, мне нравится ваше решение onsubmit :) –

+0

Хе-хе, это просто способ, которым изначально предназначался HTML: D – rulebot

Смежные вопросы