首页 > 解决方案 > 如何在 java 脚本中提交之前从 formData 中删除值

问题描述

在这里,我正在准备 formData 值并存储到一个隐藏变量中。所以我想删除该值一旦添加到res变量中。知道吗?

我试过 formData.delete(pair[0]);...没用

function prepareOCPDepEntries(isButton){

    var formEl = document.forms.mainForm;
    var formData = new FormData(formEl);
    var res = "";
     for(var pair of formData.entries()) {
       if(pair[0].startsWith("_")){
        res = res +"|"+ pair;
        formData.delete(pair[0]);
       }
    }
    document.getElementById("depEntry").value = res;
    document.forms.mainForm.disabled = true;
}

HTML 代码;

对 [0] 将是 _0.0


<select name="_0.0" id="_0.0" >
<option value="1" >Y</option>
<option value="0" selected>N</option>
<option value="2" >A</option>
<option value="3" >T1</option>
<option value="4" >T2</option>
<option value="5" >T3</option>
</select></TD>
<select name="_0.1" id="_0.2" >
<option value="1" >Y</option>
<option value="0" selected>N</option>
<option value="2" >A</option>
<option value="3" >T1</option>
<option value="4" >T2</option>
<option value="5" >T3</option>
</select></TD>

标签: javascript

解决方案


function prepareOCPDepEntries(formEl) {
  const formData = new FormData(formEl);
  let res = "";
  for (var pair of formData.entries()) {
    console.log(pair[0])
    if (pair[0].startsWith("_")) {
      console.log(pair[0])
      res = res + "|" + pair;
      formData.delete(pair[0]);
    }
  }
  console.log([...formData.entries()]); // Works. There's only one entry in the Iterator
  document.getElementById("depEntry").value = res;
  document.forms.mainForm.disabled = true;
}

document.querySelector("#mainForm").addEventListener("submit", function(ev) {
  ev.preventDefault();
  prepareOCPDepEntries(this);
})
<form id="mainForm">
  <input value="123" name="_0.0" type="text">
  <input value="999" name="bar" type="text">
  <button>Submit</button>
</form>

<textarea id="depEntry"></textarea>


推荐阅读