【问题标题】:I wanna select 2 different inputs(radio buttons) and divide their value and show the result as alert我想选择 2 个不同的输入(单选按钮)并划分它们的值并将结果显示为警报
【发布时间】:2021-06-12 17:20:05
【问题描述】:
 <form id="payments" >
          <input type="radio" id="firstpay" name="pay" value="999" >
            <label for="firpay">999 €</label>
            <input type="radio" id="secondpay" name="pay" value="1599" >
            <label for="firpay">1599 €</label>
            <input type="radio" id="thirdpay" name="pay" value="2999">
            <label for="firpay">2999 €</label>
         </form>    

所以我从这里选择 1 个输入,从下面选择一个:

 <input name="answer" id="answer_1" type="radio" value="0">
            </td>
            <td>
              <input name="answer" id="answer_2" type="radio" value="7">
            </td>
            <td>
              <input name="answer" id="answer_3" type="radio" value="15">
            </td>
            <td>
              <input name="answer" id="answer_4" type="radio" value="24">
            </td>
            <td>
              <input name="answer" id="answer_5" type="radio" value="36">
            </td>
            <td>
              <input name="answer" id="answer_6" type="radio" value="50"> 

假设我选择带有 id firstpay 的输入,当我从第二个表单中选择其他输入时,我想获得(999 / 0、7、15...),具体取决于第二个输入。我希望结果以警报的形式出现

【问题讨论】:

  • 这应该使用javascript来完成。到目前为止,您尝试过什么?
  • 您所有的&lt;label&gt; 元素都与同一个(不存在的)“firpay”元素相关联。您似乎在 &lt;form&gt; 元素中有一组元素,而在 &lt;table&gt; 的其他地方有另一组元素?您还没有尝试解决您自己的问题(请出示您的“minimal reproducible example”)。
  • @TusharShahi 我试过用 javascript 但我是个菜鸟
  • @DavidsaysreinstateMonica 我没有t shown a solution because I dont 有一个如果我有我不会问这个。

标签: javascript html arrays


【解决方案1】:

跟踪支付和回答的价值。
为输入注册“更改”事件,当两个值都可用时显示警报。试试 sn-p。

const track = {
  pay: null,
  answer: null,
};

document.querySelectorAll("input").forEach((el) =>
  el.addEventListener("change", (e) => {
    const type = e.target.name;
    const value = e.target.value;
    track[type] = value;

    if (track.pay !== null && track.answer !== null) {
      alert(
        `Avg is ${track.pay} / ${track.answer} = ${track.pay / track.answer}`
      );
    }
  })
);
<form id="payments" >
   <input type="radio" id="firstpay" name="pay" value="999" >
   <label for="firpay">999 €</label>
   <input type="radio" id="secondpay" name="pay" value="1599" >
   <label for="firpay">1599 €</label>
   <input type="radio" id="thirdpay" name="pay" value="2999">
   <label for="firpay">2999 €</label>
</form>


<td>
   <input name="answer" id="answer_1" type="radio" value="0">
</td>
<td>
   <input name="answer" id="answer_2" type="radio" value="7">
</td>
<td>
   <input name="answer" id="answer_3" type="radio" value="15">
</td>
<td>
   <input name="answer" id="answer_4" type="radio" value="24">
</td>
<td>
   <input name="answer" id="answer_5" type="radio" value="36">
</td>
<td>
   <input name="answer" id="answer_6" type="radio" value="50"> 
</td>

【讨论】:

  • 非常感谢!
猜你喜欢
  • 2015-07-28
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 2015-10-05
相关资源
最近更新 更多