【问题标题】:Javascript function not working for divid.blurJavascript 函数不适用于 divid.blur
【发布时间】:2015-01-26 22:30:59
【问题描述】:

我这里有一个情况,我需要使用javascript根据输入来计算税...这里是代码:

PHP 代码:

<tr>
              <td colspan="2" class="blank"> </td>
              <td colspan="2" class="total-line">Subtotal</td>
              <td class="total-value"><div id="subtotal">$0.00</div></td>
          </tr>
                     <tr>
              <td colspan="2" class="blank"> </td>
              <td colspan="2" class="total-line">Tax(%)</td>

              <td class="total-value"><textarea id="txp">0.00</textarea></td>
          </tr>
                    <tr>

              <td colspan="2" class="blank"> </td>
              <td colspan="2" class="total-line">Taxes</td>
              <td class="total-value"><div id="tax">$0.00</div></td>
          </tr>

Javascript 代码:

function update_tax() {
    var txc = $("txp").val() * $("#subtotal").val() / 100;
    $("#tax").html(txc);
}

$("#txp").blur(update_tax);

但是该功能不起作用...谁能帮我解释为什么这不起作用。

提前致谢

【问题讨论】:

  • 需要更多信息。事件在哪里/何时绑定?控制台中是否有任何错误消息?
  • 我猜你的税箱里有NaN
  • 请详细说明该功能不起作用...

标签: javascript php jquery javascript-events


【解决方案1】:

改变

<td class="total-value"><div id="subtotal">$0.00</div></td>

到:

<td class="total-value">$<span id="subtotal">0.00</span></td>

和你的代码:

 $(document).ready(function(){
   function update_tax() {
       var txc = parseFloat($("#txp").val()) * parseFloat($("#subtotal").text()) / 100;
       $("#tax").html("$"+txc);
    }
    $("#txp").blur(update_tax);
  });

现在代码在页面完全加载后开始执行。我将$-符号从div 中移动,并将div 更改为span(内联)。所以$ 和值出现在同一行。

在乘法函数中,我使用 parseFloat 将任何字符串转换为 float。可以使用 jQuery val() 检索来自 textarea 的内容,使用 text() 检索 span 的内容。同样在您使用txp 作为选择器的函数中,它将引用名称为txp 的节点。将其更新为#txp 以选择具有id 的元素:txp

【讨论】:

    猜你喜欢
    • 2011-06-05
    • 2013-05-24
    • 2017-11-22
    • 2020-06-05
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    相关资源
    最近更新 更多