简体   繁体   English

根据单选按钮更改变量的值

[英]Change the value of a variable depending on a radio button

I have a variable called genderMultiplier which is used in this calculation我有一个名为 genderMultiplier 的变量,用于此计算

const bloodAlcoholContent = (gramsOfAlcohol / ((weight * 1000) * genderMultiplyer))*100;

My genderMultiplier can have 2 values and I have made a radio input for that in HTML我的 genderMultiplier 可以有 2 个值,我在 HTML 中为此做了一个无线电输入

<div class="gender-buttons" id="gender-buttons">
     <input class="gender-button" type="radio" name="tools" id="tool-1" value="0.55" checked>
     <label class="for-gender-button" for="tool-1">Male</label>
     <input class="gender-button" type="radio" name="tools" id="tool-2" value="0.68">
     <label class="for-gender-button" for="tool-2">Female</label>
</div>

const genderButtonElement = document.getElementById("gender-buttons")
const genderMultiplyer = parseFloat(genderButtonElement.input);

One radio button is [MALE] and [FEMALE].一个单选按钮是 [MALE] 和 [FEMALE]。 So if the user clicks Male then I want the genderMultiplier to be 0.55 and if the user clicks Female then I want the genderMultiplier to be 0.68因此,如果用户点击男性,那么我希望 genderMultiplier 为 0.55,如果用户点击女性,那么我希望 genderMultiplier 为 0.68

Any advice on this?对此有何建议?

Change your last line to将最后一行更改为

const genderMultiplier = parseFloat([...genderButtonElement.children].find(c=>c.checked).value)

 function getMultiplier() { const genderMultiplyer = parseFloat(document.querySelector('input[name="tools"]:checked').value); alert("The multiplier is: " + genderMultiplyer); }
 <div class="gender-buttons" id="gender-buttons"> <input class="gender-button" type="radio" name="tools" id="tool-1" value="0.55" checked> <label class="for-gender-button" for="tool-1">Male</label> <input class="gender-button" type="radio" name="tools" id="tool-2" value="0.68"> <label class="for-gender-button" for="tool-2">Female</label> </div> <button onclick="getMultiplier()">Get Multiplier</button>

The pure Javascript way of doing this in your example is as follows:在您的示例中执行此操作的纯 Javascript 方法如下:

const genderMultiplyer = parseFloat(document.querySelector('input[name="tools"]:checked').value);

If your are using JQuery you can get it this way:如果您使用的是 JQuery,您可以通过以下方式获取:

const genderMultiplyer = parseFloat($('input[name="tools"]:checked').val());

To calculate bloodAlcoholContent , you need to know the values gramsOfAlcohol and weight .要计算bloodAlcoholContent ,您需要知道gramsOfAlcoholweight的值。 But you did not show the method for calculating these variables.但是您没有显示计算这些变量的方法。

 const genderButtonElement = document.querySelectorAll('.gender-buttons.gender-button'); genderButtonElement.forEach(function(current, index) { current.addEventListener('click', function() { const genderMultiplyer = parseFloat(current.value); console.log(genderMultiplyer); }); });
 <div class="gender-buttons" id="gender-buttons"> <input class="gender-button" type="radio" name="tools" id="tool-1" value="0.55" checked> <label class="for-gender-button" for="tool-1">Male</label> <input class="gender-button" type="radio" name="tools" id="tool-2" value="0.68"> <label class="for-gender-button" for="tool-2">Female</label> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM