Я пытаюсь изменить содержимое 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>
Это не jQuery; это то, что ваша форма публикуется. Итак, ваше изменение сделано, но затем форма публикуется и страница обновляется с сервера.
Тип button
умолчанию - "submit"
. Чтобы сделать одну или обе эти кнопки только одной кнопкой, используйте type="button"
.
Кроме того, если вы хотите разрешить использование формы, когда JavaScript отключен (например, разрешить ее отправку в обычном режиме), оставьте кнопки в качестве кнопок отправки, но запретите отправку формы с использованием JavaScript. Например:
$("#form").submit(false); // Prevents the form being submitted in the normal way.
Любые кнопки внутри формы считаются кнопками submit
.
Поэтому вам нужно добавить event.preventDefault()
в ваш .click
код.
Кроме того, почему ваши скрипты находятся вне раздела body
?
$("#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);
});
});