javascript - 多步表格 | 使用ajax提交表单
问题描述
我有一个多步骤表格。该页面有 3 个容器。当提交第一个容器上的表单时,第一个容器隐藏,第二个显示..
我想在步骤之间移动(没有页面刷新的容器)。问题是当我使用 ajax 发送数据并使用 event.preventDefault() 或返回 false 时 - 数据没有发送到我想将输入值从表单设置为会话的 php 页面。如果我删除 event.preventDefault 然后数据发布到 php 页面但它也会重新加载页面并且不移动到下一个“步骤”
这是js的样子:
$(document).ready(function(e) {
$('#myform').submit(function(event) {
event.preventDefault();
var formData = {
'1': $('select[name=1]').val(),
'2': $("#2").val(),
'3': $('input[name=3]').val(),
'4': $('input[name=4]').val(),
'5': $('input[name=5]').val(),
'6': $('input[name=6]').val(),
'7': $('input[name=7]').val(),
};
$.ajax({
type : 'POST',
url : 'process.php',
data: formData,
})
$("#container1").css("display", "none");
$("#container2").css("display", "block");
});
});
解决方案
可以回避提交事件以避免所有这些。不确定您的 html 是什么样的,但如果您有一个按钮,您可以执行以下操作,通过 ajax 在单击事件而不是提交事件中提交:
<button class="submit-form-btn">Submit</button>
像这样的jQuery:
$('.submit-form-btn').on('click', function () {
$.ajax({
type : 'POST',
url : 'process.php',
data: formData
})
// do your css to show/hide next form
})
推荐阅读
- javascript - 如何将 pixie 渲染附加到 babylon.js 网格或沿 Z 轴移动 pixie 容器
- ios - Flutter 应用程序停留在物理 iPhone 的安装和启动步骤
- django - Django 将数字呈现为 5 星评级
- reactjs - 无法将 react/styled 组件正确发布到使用 create-react-app 构建的 npm
- react-native - GooglePlaces自动完成基本搜索
- c - C 程序中的错误“munmap_chunk():无效指针”
- javascript - 如何使用jquery按Enter键提交动态生成的表单
- python - 如果满足 NaN 阈值,Python 从 DF 中删除所有特征实例
- excel - 如何在Excel中传递带有参数的字符串以进行评估?
- wpf - 使用 WebBrowser 控件创建 WPF 应用程序的限制