【问题标题】:javascript: how do i push a radio value to another function?javascript:如何将单选值推送到另一个函数?
【发布时间】:2011-10-15 22:46:57
【问题描述】:

无法在以下形式调用的函数中看到变量taxRate。大声! :P

这是 HTML:

<form name="incomeRange" id="incomeRange" title="Taxable Income Ranges">
  <legend>Income Range:</legend>            
    <p name="incomeTable" id="incomeTable">
      please make a selexion: <br>
      <label>
        <input type="radio" name="B" id="B_1" value="200" onChange="var taxRate = (this.value);">200
  </label>
</p>
</form>
<form name="userAmount" id="userAmount">
  <p>Target Amount to Spend:
    <input type="text" name="userTargetAmount" id="userTargetAmount" onKeyUp="doTheMath(this.value);">
  </p>
</form>

及其调用的函数:

function doTheMath(amount)
{
  var targAmt = document.getElementById("targetAmount");
  var taxAmt = document.getElementById("taxAmount");
  var totTaxEarn = document.getElementById("totalTaxedEarnings");
  var taxRt = document.getElementById("taxRate");

  console.log(amount);
  console.log(taxRate);

  if (!isNaN(amount))
  {
    targAmt.innerHTML = amount;
    totTaxEarn.innerHTML = amount / taxRate;
    taxRt.innerHTML = taxRate;
    taxAmt.innerHTML = (amount / taxRate) - amount;
  }
}

猜猜它在哪里爆炸? taxRate 在此函数中不可见。我认为通过使用单选按钮的 onChange 设置它,这将使它可以访问......但我想不是。我怎样才能将该值放入变量中,以便可以在doTheMath(); 函数中使用?

感谢您的宝贵时间。呲牙咧嘴。 :)

写!

PS:这一次,我不太可能自己解决这个问题......我已经花了三个小时来解决这个问题......:P

【问题讨论】:

  • 顺便说一句,我确实看过这里:Radio Button produced undefined... 并尝试了他们的建议,但没有奏效。 :(
  • 其余字段在哪里?这是一个开始研究一些明显问题的开始,但我还需要 3 个字段:jsfiddle.net/mplungjan/mjuMA
  • ……嗯……就是这样,就是这样。 :( 我使用这个占位符作为测试平台。实际的表单是通过 AJAX/PHP 填充的。为我节省了服务器步骤... :) 你在寻找哪些字段?
  • document.getElementById("targetAmount"); document.getElementById("taxAmount"); document.getElementById("totalTaxedEarnings"); document.getElementById("taxRate");您发布的表单中都没有。

标签: javascript radio-button


【解决方案1】:

问题出在以下代码中:

    <input type="radio" name="B" id="B_1" value="200" onChange="var taxRate = (this.value);">200

taxRate 使用 'var' 关键字声明,使其仅在 'onChange' 事件中可见。请删除“var”关键字。

【讨论】:

  • 我试过了,谢谢,但没用。 :'( 在函数中,taxRate 仍然显示为undefined...还有其他想法吗?
  • 请添加 'var taxRate = '';'在 doTheMath 函数之外。
  • 只是在 HTML 的
  • 好的。试过了。现在它显示为undefined。我们越来越近了! :) 非常感谢!
  • 如果我设置 taxRate = new Number;在 HTML 中,它的计算结果为零而不是 200...
【解决方案2】:

跳过“onchange”处理程序,只在doTheMath 中获取当前选定的值。我会用 jQuery 这样做:

$('radio[name=B]:checked').val()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 2020-11-25
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2019-12-29
    相关资源
    最近更新 更多