在提交表单之前,我不想检查插入的日期是否可用。我有一个PHP脚本可以执行此检查,我想通过jquery / ajax调用此PHP脚本。
我相信我应该使用event.preventDefault();
来避免提交表单。但是我不知道怎么能把它与Ajax调用结合起来。无论如何,表单的操作都会执行,用户被重定向到test.html。
我做错了什么?有人有什么建议吗?
我的.html
<form id="checkData" action="test.html" method="post">
<input type="text" id="from" name="from">
<input type="text" id="to" name="to">
<input type="submit" value="Book">
我的.js
$( "#checkData" ).submit(function( event ) {
var data = $("#checkData :input").serializeArray();
$.post("check.php", data, function(json){
if (json.status == "fail") { //this works fine without using the "event.preventDefault() statement"
event.preventDefault();
}
}, "json");
答案 0 :(得分:0)
将preventDefault()放在提交按钮的click事件上。
我没有测试代码,所以可能会有一些错字。
$( "#checkData input[type='submit']" ).click(function( event ) {
event.preventDefault();
var data = $("#checkData :input").serializeArray();
$.post("check.php", data, function(json){
if (json.status != "fail") {
$(#checkData).submit();
}
}, "json");
event.stopPropagation();