проблема с отправкой формы AJAX при нажатии Enter - PullRequest
2 голосов
/ 12 сентября 2011

Я пытаюсь отправить некоторый текст в поле ввода и вывести его на той же странице без обновления страницы.Тем не менее, он не делает то, что я хочу.У меня также есть элемент-заполнитель, поэтому, если я случайно ничего не введу в поле, он не будет вставлять текст-заполнитель в мою базу данных (mysql).У меня проблема в том, что когда я нажимаю ввод, он просто обновляет страницу, и он не предупреждает меня, когда я пытаюсь получить предупреждение в случае успеха.

-------------------- Jquery ниже ------------------

$('[placeholder]').parents('form').submit(function() {
  $(this).find('[placeholder]').each(function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
      input.val('');
    }

  });

  var input = $('input.to_do').val();

  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                alert(input);
                //$('.to_do_list_').html(data);
                //$('.n').hide();
            }
    });
});

-------------------------- HTML ниже --------------------

<form action='#' method='post' >
<input type="text" class="to_do shadow" placeholder="enter text"/>
</form>

Спасибо за вашвремя!

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011

Предотвращение поведения события по умолчанию:

$('[placeholder]').parents('form').submit(function(event) {
  $(this).find('[placeholder]').each(function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
      input.val('');
    }

  });

  var input = $('input.to_do').val();

  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                alert(input);
                //$('.to_do_list_').html(data);
                //$('.n').hide();
            }
    });

    event.preventDefault();
});
3 голосов
/ 12 сентября 2011

Добавьте return false в конец вашей функции, чтобы страница не выполняла действие отправки по умолчанию.

Например:

$('[placeholder]').parents('form').submit(function() {
  $(this).find('[placeholder]').each(function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
      input.val('');
    }

  });

  var input = $('input.to_do').val();

  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                alert(input);
                //$('.to_do_list_').html(data);
                //$('.n').hide();
            }
    });

  return false;
});
...