【问题标题】:NaN in javascript showing up when using a text input field to sum使用文本输入字段求和时出现 javascript 中的 NaN
【发布时间】:2016-11-27 15:43:57
【问题描述】:

我需要将一个值与来自输入文本的另一个值相加。

HTML

<%= f.text_field :hoursclass, id:"txt_hours" %>     

JS

$(function() {
  var price = <%= @room.price %>;
  var qtdhours =  parseInt($(':input[id="txt_hours"]').val());
  var total = qtdhours * <%= @room.price %>

  $("#txt_hours").keyup(function() { 
    $('#reservation_days').text(qtdhours);
    $('#reservation_sum').text(total);
 });

$('#reservation_sum').text(total); 返回 NaN

提前通知

【问题讨论】:

  • 您的总数被计算一次,当页面首次加载时 - 输入在那个时刻有什么值? (输入是稍后动态创建的吗?)您需要从键事件处理程序内部进行计算。
  • Tku @nnnnnn ..你帮我找出我的错误。我只是改变了$("#txt_hours").keyup(function() { 的位置

标签: javascript jquery ruby-on-rails ajax nan


【解决方案1】:

在进行计算之前检查未定义或空白值,同时确保@room.price 具有数值。

$(function() {
  var total=0;
  var price = <%= @room.price %>;
  var qtdhours =  parseInt($(':input[id="txt_hours"]').val());
  if (qtdhours != undefined || qtdhours !='') {
    total = qtdhours * <%= @room.price %>
  }

  $("#txt_hours").keyup(function() { 
    $('#reservation_days').text(qtdhours);
    $('#reservation_sum').text(total);
 });

【讨论】:

    猜你喜欢
    • 2013-06-21
    • 2013-10-03
    • 1970-01-01
    • 2020-08-05
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 2015-07-18
    相关资源
    最近更新 更多