Jquery проблемы с .live, .click и предотвратить дефолт - PullRequest
1 голос
/ 18 января 2011

У меня проблемы с формой.

Я хочу использовать jquery ajax для проверки формы в базе данных, и я сталкиваюсь с различными проблемами.

1.

$('#formsubmit').click(function(e) {
    e.preventDefault(); // this is not working, the page reloads
});

2.

$('#formsubmit').live('click', function(e) {
    e.preventDefault(); //works, but...
    var firstname = $('#firstname').val(); // returns an empty string and ...
    firstname = document.getElementById('firstname'); //does not return anything either
    alert("$('#firstname')"); // returns [object][object] ... should'nt it be [object][html inputelement]
});

До сих пор я не смог активировать ajax-загрузку при нажатии на кнопку отправки в моей форме, потому что я не могу получить значения моих полей ввода.

Я что-то здесь упускаю?Можно ли использовать другой метод для: 1. предотвращения перезагрузки страницы при submit-click и 2. получения всех значений формы и отправки их через ajax в мой php-скрипт 3. ожидания ответа и отображения его в соответствующих html-элементах.

1 Ответ

1 голос
/ 18 января 2011

Проблема в том, что вы предотвращаете событие click, а не событие submit, которое вы хотите перехватить здесь, например:

$("#formid").live("submit", function(e) {
  e.preventDefault();
  $.post("myPage.php", $(this).serialize(), function(result) { 
    $("#resultContainer").html(result);
  });
});

В приведенном выше примере мы используем .serialize() на самом <form> для получения всех данных для отправки (из всех успешных входных данных), так же, как это делает обычная передача.(с нет JavaScript).


Кроме того, я не могу сказать по вашему вопросу, но убедитесь, что ваши атрибуты id уникальны, например, есть только один id="firstname", у вас будетмного проблем, если это не так.

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