变量与javascript

时间:2019-05-23 13:34:28

标签: javascript for-loop

我将问题简化到最低限度,因为实际上我的代码很长而且解释起来很复杂。

我有两个文本输入字段,在第一个字段中,我可以插入一系列值,而第二个字段接收第一个字段的值,并将它们与已有的值进行比较。如果存在双精度值,该功能会发出警告,用户可以选择覆盖还是删除它们,否则将添加该值。

我想通过一个for循环来做到这一点。

function prova() {
  var stringa_valoredainserire = document.getElementById("valoredainserire").value;
  var stringa_valoredacambiare = document.getElementById("valoredacambiare").value;
  var stringa_valoredacambiare2 = document.getElementById("valoredacambiare");
  mioarray = stringa_valoredainserire.split("; ");
  var i, len, text;
  //inizio ciclo for                                                       
  for (i = 0, len = mioarray.length, text = ""; i < len; i++) {
    if (stringa_valoredacambiare.indexOf(mioarray[i]) !== -1) {
      if (confirm('il valore ' + mioarray[i] + ' esiste, ok per sovrascriverlo, annulla per cancellarlo')) {
        stringa_valoredacambiare2.value = stringa_valoredacambiare.replace(mioarray[i], mioarray[i]);
      } else {
        stringa_valoredacambiare2.value = stringa_valoredacambiare.replace(mioarray[i] + '; ', '');
      }
    } else {
      stringa_valoredacambiare2.value = stringa_valoredacambiare2.value + mioarray[i] + '; ';
    }
  }
}
<input id="valoredainserire" value="" type="text">
<input id="valoredacambiare" value="pere; cipolle; mele; " type="text" readonly>
<input type="button" onclick="prova();" value="Prova">

问题在于,如果要在第一个输入字段中输入的值等于第二个输入字段的值,那么如果我想删除它们,该函数只会删除最后一个,因为它是保留最后一个变量在内存中。

我该如何纠正这种情况?有想法吗?预先感谢。

0 个答案:

没有答案