я создаю форму в HTML:JQuery Ajax event.preventDefault() отменить представить действие формы
<form id="flog" action="https://localhost/book.php" method="post">
<div id="inputUser">
<label for="userName">User</label>
<input type="text" name="userName" id="userName">
</div>
<div id="inputPass">
<label for="password">Password</label>
<input type="password" name="password" id="password">
</div>
<div id="savePassword">
<input type="checkbox" id="savePassword" value="CheckSavePAssword">Save password
<br>
</div>
<input type="submit" value="Acceptar">
</form>
И создать функцию представить с JQuery:
$("#flog").submit(function(event) {
var savePassword = false;
if($("#CheckSavePAssword").is(':checked')) {
savePassword = true;
}
var login = new Object();
login.username = $("#userName").val();
login.pass = $("#password").val();
login.savePassword = savePassword;
var jlogin = JSON.stringify(login);
event.preventDefault();
$.ajax({
url: "./checkLogin.php",
type: "POST",
dataType: "JSON",
data: {"dataLogin" : jlogin},
success: function(data, textStatus, xhr) {
console.log("okk "+data);
},
error: function(xhr, textStatus, errorThrown) {
console.log("error");
console.log(xhr);
console.log(textStatus);
console.log(errorThrown);
}
});
});
Но если я не помещаю «event.preventDefault()» функция ajax не запускается, но эта строка (event.preventDefault()) отменяет действие формы отправки. В чем проблема?
Что вы имеете в виду, отменив действие формы? –
'preventDefault()' существует, чтобы остановить перезагрузку страницы. Без него форма просто отправит пользователя на 'book.php' вместо того, чтобы загружать данные асинхронно. Вот почему функция не будет работать без нее. OTOH скрипт PHP не может записывать данные POST. Вы проверили это? – Kebman
Не используйте ajax оставьте его по умолчанию, если вы хотите перенаправить свою страницу book.php ... –