https://developer.mozilla.org/zh-CN/docs/Web/API/FormData
要解决的问题:
- 如何将<form>表单元素变成FormData对象?
- 如何获取FormData对象中一个包含所有键的iterator对象?
- 如何迭代该iterator对象?
HTML代码:
<form onsubmit="return transmit(this);">
原始密码:<input type="password" name="pw" />
新的密码:<input type="password" name="npw1" />
重复密码:<input type="password" name="npw2" />
</form>
JavaScript代码:
function transmit(formObject)
{
var formData = new FormData(formObject);
var iterator = formData.keys(); //得到包含所有key的迭代器
var nextElement = iterator.next(); //获取到迭代器中的下一个元素
while (!nextElement.done) //判断 nextElement.done 是否为 true,如果为 true,则说明已经迭代完了所有元素,循环结束。
{
console.log(nextElement.value);
nextElement = iterator.next(); //通过 nextElement.value 获取到当前元素的值
}
}
代码解释:
在循环中,我们首先通过调用 iterator.next() 方法获取到迭代器中的下一个元素,然后判断 nextElement.done 是否为 true,如果为 true,则说明已经迭代完了所有元素,循环结束。否则,我们可以通过 nextElement.value 获取到当前元素的值,并进行相应的处理。