2 回答

TA貢獻2016條經驗 獲得超9個贊
您可以在您的按鈕上使用submit功能form而不是在按鈕click上使用功能type="submit"。
此外,您在發送 ajax 請求時輸入了錯誤的變量,lname但您將其作為lanme
現場演示:(代碼測試和工作)
$(document).ready(function() {
$("#myForm").on("submit", function(e) {
e.preventDefault();
//Values
var fname = $("#fname").val();
var lname = $("#lname").val();
//Ajax
$.ajax({
url: "insertData.php",
type: "POST",
data: {
fname: fname,
lname: lname
},
success: function(data) {
if (data == 1) {
//tableData();
} else {
//alert("Can't save record");
}
}
});
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<form id="myForm" autocomplete="off">
<div class="form-group col-sm">
<label for="fname">First Name</label>
<input type="text" name="fname" id="fname" class="form-control">
</div>
<div class="form-group col-sm">
<label for="lname">Last Name</label>
<input type="text" name="lname" id="lname" class="form-control">
</div>
<div class="form-group col-sm">
<button class="btn btn-primary" type="submit" id="submitBtn">Submit</button>
</div>
</form>

TA貢獻1829條經驗 獲得超13個贊
考慮這段代碼:
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script>
$(document).ready(function()
{
? ? $("#submitBtn").on("click", function(e)
? ? {
? ? ? ? console.log(911, a);
? ? ? ? e.preventDefault();
? ? })
});
</script>
</head>
<body>
<form>
? ? <input type="text" id="a" />
? ? <button type="submit" id="submitBtn">Submit</button>
</form>
</body>
</html>
如您所見,變量a已定義并引用了 id 為“a”的 HTML 元素。誰能解釋為什么?
這就是原始代碼中發生的情況——數據 JSON 中的 lname 字段被設置為 HTML 元素的引用,jquery 處理不當,這意味著它會導致無限遞歸。
添加回答
舉報