无法动态计算onchange上的输入值

时间:2015-09-15 17:10:27

标签: javascript

我一直试图让这个计算器在我的WordPress博客中运行,但是没有成功。

我确实得到了简单的Hello world弹出窗口,但不是这个。我想计算“BPodds”。你能告诉我这有什么问题吗?

function calcStake() {
    var BWodds = document.getElementById('BWodds').value;
    var div = document.getElementById('div').value;
    var BPodds = ((BWodds - 1) / div) + 1;
    document.getElementById('BPodds').innerHTML = BPodds;
}
<table class="table" border="0" width="500" cellspacing="1" cellpadding="3">

  <tbody>
    <tr class="calcheading">
      <td colspan="3"><strong>Each Way Lay Calculator</strong>
      </td>
    </tr>
    <tr class="calchead">
      <td align="center">Bookmaker Win odds:</td>
      <td align="center">Place divider:</td>
      <td align="center">Bookmaker Place odds:</td>
    </tr>
    <tr class="calcrow">
      <td align="center">
        <input id="BWodds" type="text" value="10" onchange="calcStake()" />
      </td>
      <td align="center">
        <input id="div" type="text" value="4" onchange="calcStake()" />
      </td>
      <td align="center">
        <input id="BPodds" />
      </td>
    </tr>
  </tbody>
</table>

2 个答案:

答案 0 :(得分:1)

您应该使用value代替innerHtml

 document.getElementById('BPodds').value = BPodds;

这是小提琴:http://jsfiddle.net/o5ze12mf/

答案 1 :(得分:0)

问题不在于Wordpress, 您试图将结果放在带有innerHTML的INPUT中,但是要更改您需要使用的INPUT的值.value 您的代码将是这样的:

    <script type="text/javascript">
function calcStake() {
    var BWodds = document.getElementById('BWodds').value;
    var div = document.getElementById('div').value;
    var BPodds = ((BWodds - 1) / div) + 1;
    document.getElementById('BPodds').value = BPodds;
}
</script>
<table class="table" border="0" width="500" cellspacing="1" cellpadding="3">
    <tbody>
        <tr class="calcheading">
            <td colspan="3"><strong>Each Way Lay Calculator</strong></td>
        </tr>
        <tr class="calchead">
            <td align="center">Bookmaker Win odds:</td>
            <td align="center">Place divider:</td>
            <td align="center">Bookmaker Place odds:</td>
        </tr>
        <tr class="calcrow">
            <td align="center">
                <input id="BWodds" type="text" value="10" onchange="calcStake()" />
            </td>
            <td align="center">
                <input id="div" type="text" value="4" onchange="calcStake()" />
            </td>
            <td align="center">
                <input id="BPodds" />
            </td>
        </tr>
    </tbody>
</table>

我刚刚改变了

document.getElementById('BPodds').innerHTML = BPodds;

document.getElementById('BPodds').value = BPodds;