通过new FormData提交简单数据

通过new FormData提交简单数据

效果示例图


代码

复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			* {
				padding: 0px;
				margin: 0px;
				box-sizing: border-box;
			}

			input,
			input:focus {
				border-radius: 4px;
				outline: none;
				padding: 0px 12px;
			}

			input::placeholder,
			input::-moz-placeholder,
			input::-webkit-input-placeholder {
				color: #999;
			}

			.form-wrap {
				width: 600px;
				margin: 12px auto;
			}

			.form-item {
				display: flex;
				flex-direction: row;
				align-items: center;
				margin-bottom: 12px;
			}

			.form-item-label {
				width: 100px;
			}

			.form-item-content {
				--width: 100px;
				width: calc(100% - var(--width));
				display: flex;
				flex-direction: row;
				align-items: center;
			}

			.form-item-content input[type='text'] {
				border: 1px solid #dcdcdc;
				width: 100%;
				height: 40px;
			}

			.form-item-content input[type='radio'] {
				border: 1px solid #dcdcdc;
				width: 20px;
				height: 20px;
				margin-left: 12px;
				cursor: pointer;
			}

			.form-item-content label {
				margin-left: 12px;
			}

			.form-footer {
				width: 100%;
				display: flex;
				flex-direction: row;
				padding-left: 100px;
			}

			.form-btn {
				border: 1px solid #00a2ef;
				border-radius: 8px;
				width: 100px;
				height: 40px;
				margin-right: 12px;
				cursor: pointer;
			}
		</style>
	</head>
	<body>
		<form class="form-wrap" id="myForm" name="myForm">
			<div class="form-item">
				<label class="form-item-label">姓名:</label>
				<div class="form-item-content">
					<input type="text" name="username" value="" />
				</div>
			</div>
			<div class="form-item">
				<label class="form-item-label">年龄:</label>
				<div class="form-item-content">
					<input type="text" name="userAge" value="" />
				</div>
			</div>
			<div class="form-item">
				<label class="form-item-label">性别:</label>
				<div class="form-item-content">
					<label for="woman">女</label>
					<input id="woman" type="radio" name="userSex" value="0" />
					<label for="man">男</label>
					<input id="man" type="radio" name="userSex" value="1" />
				</div>
			</div>
			<div class="form-item">
				<label class="form-item-label">孩子one:</label>
				<div class="form-item-content">
					<input type="text" name="children[0][name]" value="" />
				</div>
			</div>
			<div class="form-item">
				<label class="form-item-label">年龄one:</label>
				<div class="form-item-content">
					<input type="text" name="children[0][age]" value="" />
				</div>
			</div>
			<div class="form-item">
				<label class="form-item-label">孩子two:</label>
				<div class="form-item-content">
					<input type="text" name="children[1][name]" value="" />
				</div>
			</div>
			<div class="form-item">
				<label class="form-item-label">年龄two:</label>
				<div class="form-item-content">
					<input type="text" name="children[1][age]" value="" />
				</div>
			</div>

			<div class="form-footer">
				<button class="form-btn" type="reset">重置</button>
				<button class="form-btn" id="submitBtn">提交</button>
			</div>
		</form>

	</body>
	<script type="text/javascript">
		document.querySelector("#submitBtn").addEventListener("click", (e) => {
			//阻止事件向上冒泡
			e.preventDefault();
			const myForm = document.querySelector("#myForm");
			const formData = new FormData(myForm);
			const formJson = Object.fromEntries(formData.entries());
			console.log("[]", formJson)
		})
	</script>
</html>
相关推荐
rocky1915 分钟前
谷歌浏览器插件 录制元素拖动事件
前端·javascript
换日线°13 分钟前
微信小程序无缝衔接弹幕效果纯CSS
css·微信小程序
coder777723 分钟前
js逆向分享
javascript·爬虫·python·算法·安全
nothingbutluck46430 分钟前
2025.4.10 html有序、无序、定义列表、音视频标签
前端·html·音视频
换日线°1 小时前
微信小程序三种裁剪动画有效果图
css·微信小程序
爱上python的猴子1 小时前
chrome中的copy xpath 与copy full xpath的区别
前端·chrome
Lysun0012 小时前
dispaly: inline-flex 和 display: flex 的区别
前端·javascript·css
山禾女鬼0012 小时前
Vue 3 自定义指令
前端·javascript·vue.js
啊卡无敌2 小时前
Vue 3 reactive 和 ref 区别及 失去响应性问题
前端·javascript·vue.js
北桥苏2 小时前
Spine动画教程:皮肤制作
前端