修改刚刚那段代码使用form表单来提交数据并刷新页面
时间: 2024-02-17 14:04:28 浏览: 110
使用Django Form解决表单数据无法动态刷新的两种方法
好的,我们来修改一下之前的代码,使用 `form` 表单来提交数据并刷新页面。假设你有一个表单,其中包含一个 `select` 元素和一个提交按钮:
```html
<form id="myForm" action="choose_seat.php" method="post">
<select name="seat">
<option value="A1">A1</option>
<option value="A2">A2</option>
<option value="A3">A3</option>
</select>
<input type="submit" value="提交">
</form>
```
然后,添加以下 JavaScript 代码,以便在表单提交时使用 AJAX 来防止页面刷新:
```javascript
// 获取表单元素
var myForm = document.getElementById("myForm");
// 监听表单提交事件
myForm.addEventListener("submit", function(event) {
// 阻止表单默认提交行为
event.preventDefault();
// 创建 XMLHttpRequest 对象
var xhttp = new XMLHttpRequest();
// 设置请求方法和 URL
xhttp.open("POST", "choose_seat.php", true);
// 设置回调函数,当请求完成时调用
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// 刷新页面
location.reload();
}
};
// 发送表单数据
xhttp.send(new FormData(myForm));
});
```
在这个示例中,我们首先获取表单元素,然后监听表单的 `submit` 事件。当表单提交时,我们使用 `event.preventDefault()` 阻止表单的默认提交行为。然后,我们创建一个 `XMLHttpRequest` 对象,并设置请求的方法和 URL。接下来,我们设置回调函数 `onreadystatechange`,当请求完成时,它将刷新页面。最后,我们使用 `send()` 方法发送表单数据。
注意,我们使用 `FormData` 对象来获取表单数据,并将其作为参数传递给 `send()` 方法。这样可以确保正确地处理表单数据。
阅读全文