2016-07-24 5 views
0

Ich muss einen Wert mit einem anderen, der aus Eingabetext kommt summieren.NaN in Javascript bei der Verwendung eines Texteingabefeldes zu summieren

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); liefert NaN

Tks im Voraus

+3

Ihre Summe wird * einmal * berechnet, wenn die Seite zuerst geladen wird - welchen Wert hat die Eingabe in diesem Moment? (Wird die Eingabe später dynamisch erstellt?) Sie müssen die Berechnung innerhalb des Key-Event-Handlers durchführen. – nnnnnn

+0

Tku @nnnnnn ..helfen Sie mir, meinen Fehler zu finden. Ich ändere nur den Platz des $ (# txt_hours). Keyup (function() {' –

Antwort

2

prüfen undefiniert oder Leerwert vor der Berechnung zu tun, stellen auch sicher, @room .Price hat numerische Werte.

$(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); 
}); 
Verwandte Themen