使用 Jquery AJAX 提交 HTML 表单

我试图提交一个 HTML 表单使用 AJAX 使用 这个例子

我的 HTML 代码:

<form id="formoid" action="studentFormInsert.php" title="" method="post">
<div>
<label class="title">First Name</label>
<input type="text" id="name" name="name" >
</div>
<div>
<label class="title">Name</label>
<input type="text" id="name2" name="name2" >
</div>
<div>
<input type="submit" id="submitButton"  name="submitButton" value="Submit">
</div>
</form>

My script:

<script type="text/javascript">
$(document).ready(function() {
$('#formoid').ajaxForm(function() {
alert("Thank you for your comment!");
});
});
</script>

这不管用,我甚至没有收到警报信息 当我提交时,我不想重定向到另一个页面,我只想显示警报信息。

有什么简单的方法吗?

PS: 我有几个领域,我刚才举了两个例子。

512099 次浏览
var postData = "text";
$.ajax({
type: "post",
url: "url",
data: postData,
contentType: "application/x-www-form-urlencoded",
success: function(responseData, textStatus, jqXHR) {
alert("data saved")
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
})

快速描述 AJAX

AJAX 仅仅是异步 JSON 或 XML (在大多数较新的情况下是 JSON)。因为我们正在做一个 ASYNC 任务,我们可能会为我们的用户提供一个更愉快的 UI 体验。在这个特定的例子中,我们使用 AJAX 进行 FORM 提交。

真正快速的是有4个一般的网络行动 GETPOSTPUTDELETE; 这些直接对应于 SELECT/Retreiving DATAINSERTING DATAUPDATING/UPSERTING DATADELETING DATA。默认的 HTML/ASP.Net webform/PHP/Python 或任何其他 form操作是“提交”,这是一个 POST 操作。因为这一点,下面将全部描述做一个 POST。然而,有时使用 http,您可能需要一个不同的操作,并且可能希望利用 .ajax

我的代码专门为您(在代码注释中描述) :

/* attach a submit handler to the form */
$("#formoid").submit(function(event) {


/* stop form from submitting normally */
event.preventDefault();


/* get the action attribute from the <form action=""> element */
var $form = $(this),
url = $form.attr('action');


/* Send the data using post with element id name and name2*/
var posting = $.post(url, {
name: $('#name').val(),
name2: $('#name2').val()
});


/* Alerts the results */
posting.done(function(data) {
$('#result').text('success');
});
posting.fail(function() {
$('#result').text('failed');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<form id="formoid" action="studentFormInsert.php" title="" method="post">
<div>
<label class="title">First Name</label>
<input type="text" id="name" name="name">
</div>
<div>
<label class="title">Last Name</label>
<input type="text" id="name2" name="name2">
</div>
<div>
<input type="submit" id="submitButton" name="submitButton" value="Submit">
</div>
</form>


<div id="result"></div>


文件

来自 jQuery 网站的 $.post文档。

示例 : 使用 ajax 请求发送表单数据

$.post("test.php", $("#testform").serialize());

示例 : 使用 ajax 发布表单,并将结果放在 div 中

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<form action="/" id="searchForm">
<input type="text" name="s" placeholder="Search..." />
<input type="submit" value="Search" />
</form>
<!-- the result of the search will be rendered inside this div -->
<div id="result"></div>
<script>
/* attach a submit handler to the form */
$("#searchForm").submit(function(event) {


/* stop form from submitting normally */
event.preventDefault();


/* get some values from elements on the page: */
var $form = $(this),
term = $form.find('input[name="s"]').val(),
url = $form.attr('action');


/* Send the data using post */
var posting = $.post(url, {
s: term
});


/* Put the results in a div */
posting.done(function(data) {
var content = $(data).find('#content');
$("#result").empty().append(content);
});
});
</script>
</body>
</html>

重要提示

如果没有使用 OAuth 或者至少使用 HTTPS (TLS/SSL) ,请不要使用这种方法来获取安全数据(信用卡号、 SSN、任何与 PCI、 HIPAA 或者登录相关的东西)

Note that $(‘ FORM’) . Series () is easy to use, but will NOT WORK for FILE INPUTS / uploads!

这将奏效:

<form id="myform">
<input type="file" name="somefile">
<button type="submit">Submit</button>
</script>


// jquery.form.min.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.3.0/jquery.form.min.js">


<script>
// register form for ajax
$('#myform').ajaxForm(function(submit_response) {
console.log(submit_response);
});
</script>