微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 JS 中使用 onchange 时如何存储输入字段中的值

如何解决在 JS 中使用 onchange 时如何存储输入字段中的值

我正在尝试访问每个输入字段中的值并将宽度乘以高度,然后显示它。任何帮助表示赞赏。谢谢!这是我的代码

const width = document.querySelector("#width");
const height = document.querySelector("#height");
const demo1 = document.getElementById("demo");
const demo2 = document.getElementById("demo1");

width.onchange = function() {
  let num1 = Number(width.value);
  console.log(num1);
  demo1.innerHTML = num1;
};

height.onchange = function() {
  let num2 = Number(height.value);
  demo2.innerHTML = num2;
  console.log(num2);
};
<label for="width">Width (mm)*</label>
<input required class="width" id="width" type="number">
               
<label for="length">Height (mm)*</label>
<input required class="length" id="height" type="number">

<p id="demo"></p>
<p id="demo1"></p>

解决方法

在这种情况下,您可以做很多事情。您可以继续从其他输入中获取值,仅此而已。

width.onchange = function() {
  let num2 = Number(height.value);
  let num1 = Number(width.value);
  
  demo2.innerHTML = num2 * num1;
};

height.onchange = function() {
  let num2 = Number(height.value);
  let num1 = Number(width.value);
  
  demo2.innerHTML = num2 * num1;
};

如您所见,代码相同,因此您可以为其创建一个函数。

,

您可以将值存储在 object 中,对每个输入使用一个 change eventListener,一个用于 width ,另一个表示身高。运行相同的回调来检查event.targetclassList宽度height,就像您在 HTML 中指定的那样。

一旦我们找到一个包含classList,我们分配事件的键值:width or height 作为键,然后我们将 event.target.value 作为 对象的强>值 => obj['width'] = parseInt(e.target.value)

然后我们检查Object.keys(obj).includes("width") && Object.keys(obj).includes("height"),所以我们有一个匹配widthheight的键> 在设置为键的对象中,然后我们对值求和。

const width = document.querySelector("#width");
const height = document.querySelector("#height");
const demo = document.getElementById("demo");

const obj = {}

function multSum(e) {
  if (e.target.classList.contains('width')) {
    obj['width'] = parseInt(e.target.value)
    demo.textContent = `${obj.width}`
  }
  
  if (e.target.classList.contains('height')) {
    obj['height'] = parseInt(e.target.value)
    demo.textContent = `${obj.height}`
  } 
    
  Object.keys(obj).includes("width") && Object.keys(obj).includes("height") ?
    demo.textContent = `${obj.width} * ${obj.height} = ${obj.width * obj.height}` : null;
}

width.addEventListener('change',multSum)
height.addEventListener('change',multSum)
<label for="width">Width (mm)*</label>
<input required class="width" id="width" type="number">

<label for="length">Height (mm)*</label>
<input required class="height" id="height" type="number">

<p id="demo"></p>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。