tuf*_*der 7 html javascript html5 ecmascript-6
是否可以存储表单的FormData对象,然后使用该FormData对象将存储的FormData值重新填充回表单?
例如: HTML
<form id="test_form">
<input type="text" name="last_name" placeholder="Last Name"/><br/>
<input type="text" name="first_name" placeholder="First Name"/><br/>
<input type="date" name="date_of_birth" placeholder="Date of Birth"/><br/>
</form>
Run Code Online (Sandbox Code Playgroud)
使用Javascript
var f = document.getElementById('test_form');
var data = FormData(f);
...
// mythical function to translate FormData back into form values
f.values(data);
Run Code Online (Sandbox Code Playgroud)
使用this和this,这是我如何序列化和反序列化表单数据:
function formSerialize(form) {
const data = new FormData(form);
///sf/answers/3082339781/
return new URLSearchParams(data).toString();
}
function formDeserialize(form, data) {
const entries = (new URLSearchParams(data)).entries();
for(const [key, val] of entries) {
//http://javascript-coder.com/javascript-form/javascript-form-value.phtml
const input = form.elements[key];
switch(input.type) {
case 'checkbox': input.checked = !!val; break;
default: input.value = val; break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
警告:formDeserialize()不会清除未包含在存储数据中的字段,例如空的无线电组或复选框。此外,未对所有<input>类型进行测试。
| 归档时间: |
|
| 查看次数: |
3185 次 |
| 最近记录: |