FormData的具体应用

使用FormData首先需要有一个form表单 不用写请求地址和请求方式

	<!-- 创建普通的html表单 -->
	<form id="form">
		<input type="text" name="username">
		<input type="password" name="password">
		<input type="button" id="btn" value="提交">
	</form>

获取元素

// 获取按钮
		var btn = document.getElementById('btn');
		// 获取表单
		var form = document.getElementById('form');

为按钮添加点击事件

btn.onclick = function () {
			// 将普通的html表单转换为表单对象
			var formData = new FormData(form);

			/*
				get('key') 获取表单对象属性的值
				set('key', 'value') 设置表单对象属性的值
				delete('key') 删除表单对象属性中的值
			*/
			
			console.log(formData.get('username'));

			// 如果设置的表单属性存在 将会覆盖属性原有的值
			formData.set('username', 'itcast');
			formData.append('username', 'itheima');
			// 如果设置的表单属性不存在 将会创建这个表单属性
			formData.set('age', 100);
			// 删除用户输入的密码
			formData.delete('password');

			// 创建ajax对象
			var xhr = new XMLHttpRequest();
			// 对ajax对象进行配置
			xhr.open('post', 'http://localhost:3000/formData');
			// 发送ajax请求
			xhr.send(formData);
			// 监听xhr对象下面的onload事件
			xhr.onload = function () {
				// 对象http状态码进行判断
				if (xhr.status == 200) {
					console.log(xhr.responseText);
				}
			}

			// 创建空的表单对象
			var f = new FormData();
			f.append('sex', '男');
			console.log(f.get('sex'));
		}

使用Ajax发送formdata不需要设置请求头报文
要用post 的请求方式

### 如何清空 JavaScript FormData 对象 在处理 `FormData` 对象时,有时需要将其完全清空以便重新填充数据。然而,标准的 Web API 并未提供直接用于清除所有键值对的方法。为了实现这一目标,可以创建一个新的 `FormData` 实例来替代旧的对象。 #### 方法一:通过实例化新的 `FormData` 由于每次创建新实例都会初始化为空状态,因此最简单的方式就是用新的 `FormData` 替换原有的对象: ```javascript let formData = new FormData(); // 添加一些条目... formData.append('name', 'example'); console.log([...formData.entries()]); // 显示当前所有的 key-value pairs // 清除所有条目 formData = new FormData(); console.log([...formData.entries()]); // 应该没有任何输出,表示已成功清空 ``` 这种方法适用于不需要保留原有变量名的情况;如果希望保持相同的引用,则可以通过赋值操作完成更新[^1]。 #### 方法二:遍历并删除每项(模拟清空) 虽然这不是官方推荐的做法,但在某些特定情况下也可以考虑手动移除每一项直到全部被清理掉为止。不过需要注意的是,在实际应用中很少会这样做,因为效率较低而且容易引发错误。 对于那些确实想要了解具体过程的人而言,下面是一个简单的例子展示如何逐个删除字段: ```javascript function clearFormData(formData){ Array.from(formData.keys()).forEach(key => { formData.delete(key); }); } let formData = new FormData(); formData.append('item1', 'value1'); formData.append('item2', 'value2'); clearFormData(formData); if ([...formData.keys()].length === 0) { console.log("FormData has been cleared"); } else { console.error("Failed to clear all entries from FormData"); } ``` 此函数接受一个 `FormData` 参数,并迭代其内部存储的所有键,调用 `.delete()` 方法逐一去除它们。最终检查长度是否为零以确认是否彻底清除了所有记录[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值