JQuery сбрасывает мой Div контент

0

Я пытаюсь изменить содержимое div, используя jquery. но содержимое мигает и сбрасывает div. Я не могу использовать return false; потому что есть еще одна кнопка для значения текстового поля. Я хочу сохранить изменения div. вот мой код:

<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="jquery.js"></script>

</head>
<body>

    <div>
        <form id="form" method="POST">
            <input type="text" name="gname" id="gname"/></br>
            <button id="btn">Set</button>
            <button id="nbtn">View</button>
        </form>
    </div>
    <div id="outp">

    </div>
</body>
<script>
    $("#btn").click(function(event) {
        $.post("send.php", {
            named: $("#gname").val()}, function(data) {
            alert(data);
        });
    });

</script>

<script>
    $("#nbtn").click(function(e) {

        $("#outp").html("<?php include './view.php'; ?>");

    });
</script>

  • 0
    Сначала исправьте элемент </br> - должно быть <br />
  • 0
    В вашем коде $ ("# outp"). Html ("<p> Мой новый текст </ p>"); проверь и посмотри что получится
Теги:

3 ответа

2
Лучший ответ

Это не jQuery; это то, что ваша форма публикуется. Итак, ваше изменение сделано, но затем форма публикуется и страница обновляется с сервера.

Тип button умолчанию - "submit". Чтобы сделать одну или обе эти кнопки только одной кнопкой, используйте type="button".

Кроме того, если вы хотите разрешить использование формы, когда JavaScript отключен (например, разрешить ее отправку в обычном режиме), оставьте кнопки в качестве кнопок отправки, но запретите отправку формы с использованием JavaScript. Например:

$("#form").submit(false); // Prevents the form being submitted in the normal way.
  • 0
    Thanx. это помогло. убрал тег формы и все работает.
  • 0
    @ user3383167: :-) Это еще один способ, если вам не нужен запасной вариант для браузеров с отключенной поддержкой JavaScript.
2

Любые кнопки внутри формы считаются кнопками submit.

Поэтому вам нужно добавить event.preventDefault() в ваш .click код.

Кроме того, почему ваши скрипты находятся вне раздела body?

-1

Вы можете попробовать с ajax и поймать успех и ошибку:

$("#btn").click(function() {
    var named: $("#gname").val();
    $.ajax({
        url: 'send.php',
        type: 'POST',
        data: {param1: 'value1'},
    })
    .done(function(data) {
        console.log("Post success"+data);
    })
    .fail(function() {
        console.log("Post error"+data);
    });     
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню