如何迭代FormData对象中的元素?

https://developer.mozilla.org/zh-CN/docs/Web/API/FormData

要解决的问题:

  1. 如何将<form>表单元素变成FormData对象?
  2. 如何获取FormData对象中一个包含所有键的iterator对象?
  3. 如何迭代该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 获取到当前元素的值,并进行相应的处理。

猜你喜欢

转载自blog.csdn.net/banzhengyu/article/details/130658510