如何从HTML元素获取选定的值并将其传递给函数调用,

时间:2019-05-08 19:18:20

标签: javascript html

我正在构建一个应根据用户的weightheightcountry计算用户的BMI的应用。

因此,在我的letsCalculateBMI箭头函数中,我需要获取它以从select元素中获取选定的值,并且在同一letsCalculateBMI函数内部将该值传递给{{1 }}函数调用,该函数应返回所选值的用户对象。该用户对象应分配给用户变量。

概括地说,此getSelectedUser函数应实现的目的是确定用户的BMI。它应该通过调用letsCalculateBMI并将其传递给computeBMI来实现。然后,它将调用user的返回值设置为computeBMI变量,该变量最终被设置为#outcome DIV

bmi的文本内容。

这里是link

index.js

PARAGRAPH

index.html

const users = [];

      const countriesWithLowerBmi = ["Chad", "Sierra Leone", "Mali", "Gambia", "Uganda", "Ghana", "Senegal", "Somalia", "Ivory Coast", "Isreal"];      

      const featToMeter = 0.3048;

      const bmiCountryRatio = 0.82;

      const computeBMI = ({weight, height, country}) => {
        const heightInMeters = height * featToMeter;
        let BMI = weight / (heightInMeters^2);

       if (countriesWithLowerBmi.includes(country)) 
         BMI *= bmiCountryRatio;

       return Math.round(BMI, 2);
      };

      const getSelectedUser = (userId) => {
        return users.find(({id}) => id === userId);
      };


      const letsCalculateBMI = () => {

        const value = document.querySelector('.select-text').value;
        const user =getSelectedUser(target.value);      

        const bmi = computeBMI(user);

        document.querySelector('.bmi-text').innerHTML = bmi
      };

      const powerupTheUI = () => {
        const button = document.querySelector('#oracle');

        const select = document.querySelector('.select-text');

        select.addEventListener('change', displaySelectedUser);

        button.addEventListener('click',letsCalculateBMI);
      }; 

2 个答案:

答案 0 :(得分:1)

您提供的代码不是minimal, complete and verifiable example,因此很难在其上构建,但是要点基本上是,对于<input><select>和其他表单元素,您可以访问它们.value属性的值。请注意,该值始终是一个字符串,因此对于数字,您必须首先将其转换以免产生错误(例如,在字符串值之前添加+)。

一旦获得了国家,体重和身高的值,它就是简单的JS端编程。这是一个快速的BMI计算器:

const computeBMI = () => {
  let country = document.querySelector('#country').value;
  let weight = +document.querySelector('#weight').value;
  let height = +document.querySelector('#height').value;
  let bmi = weight / (height^2);
  document.querySelector('#result').innerHTML = bmi;
}
<p>
  Country:
  <select id="country">
    <option value="usa">USA</option>
    <option value="other">Rest of the world</option>
  </select>
</p>
<p>
  Weight:
  <input id="weight" type="number" value="0">
  (in kg)
</p>
<p>
  Height:
  <input id="height" type="number" value="0">
  (in m)
</p>
<p>
  Your BMI is <span id="result">(not computed yet)</span>
  <button onclick="computeBMI()">Compute BMI</button>
</p>

答案 1 :(得分:0)

在letsCalculateBMI函数中,getSelectedUser函数应仅将值作为参数接收(而不是target.value)。