簡體   English   中英

JavaScript計算器無法正常工作

[英]JavaScript calculator isn't working

我的小時工資計算器不起作用。 我應該得到3個不同的數字,但是前兩個數字沒有顯示,最后一個數字是NaN。 請幫忙。 我正在使用的代碼如下所示。

var hourly = $('#txtHourlyWage').val();
var fraction = hourly/60/60/10;
var calc = new Calculator();
function addCommas(str){
    return(str+"").replace(/\b(\d+)((\.\d+)*)\b/g,function(a,b,c){
        return(b.charAt(0)>0&&!(c||".").lastIndexOf(".")?b.replace(/(\d)(?=(\d{3})+$)/g,"$1,"):b)+c;
    });
}

$('#year-calculation').html(addCommas(Math.round(calc.annual/(hourly*calc.per_hour))) + ' years' );
$('#your-time').html( (((hourly*2080)/ calc.annual) * 52 * 5 * 8).toFixed(1) + " hours");

$('#txtHourlyWage').bind('keypress', function(e) { 
    if ($('#txtHourlyWage').length < 2) {
        return ( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)) ? false : true ;
    } else {
        return false;
    }
    return
})

$('#txtHourlyWage').keyup(function (){

    $('#year-calculation').html(addCommas(Math.round(calc.annual/(hourly*calc.per_hour))) + ' years' );
    $('#your-time').html( (((hourly*2080)/ calc.annual) * 52 * 5 * 8).toFixed(1) + " hours");
    $('#HourlyWageOutput').html("At this rate, it would take you <span id=\"year-calculation\">&nbsp;</span> to earn his yearly income and <span id=\"your-time\">&nbsp;</span> for him to earn yours.");
});

此代碼產生以下內容:

以這種速度,您將需要賺取他的年收入,而他需要賺取您的年收入。
NaN小時

從上面可以看到,代碼的產生沒有意義,因為缺少數字。 我不知道我在做什么錯。 請幫忙。

您沒有在keyup事件上設置數字。

您需要輸入以下行:

$('#year-calculation').html(addCommas(Math.round(calc.annual/(hourly*calc.per_hour))) + ' years' );
$('#your-time').html( (((hourly*2080)/ calc.annual) * 52 * 5 * 8).toFixed(1) + " hours");

keyup 實際上,它們僅在加載時被觸發一次,大概是在需要進行任何計算之前。

再次編輯:仍然未經測試,但我認為它應該起作用:

function addCommas(str){
    return(str+"").replace(/\b(\d+)((\.\d+)*)\b/g,function(a,b,c){
        return(b.charAt(0)>0&&!(c||".").lastIndexOf(".")?b.replace(/(\d)(?=(\d{3})+$)/g,"$1,"):b)+c;
    });
}

$('#txtHourlyWage').bind('keypress', function(e) { 
    if ($('#txtHourlyWage').length < 2) {
        return ( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)) ? false : true ;
    } else {
        return false;
    }
    return;
});

$('#HourlyWageOutput').html("At this rate, it would take you <span id=\"year-calculation\">&nbsp;</span> to earn his yearly income and <span id=\"your-time\">&nbsp;</span> for him to earn yours.");

$('#txtHourlyWage').keyup(function (){

  var hourly = $(this).val();
  var fraction = hourly/60/60/10;
  var calc = new Calculator();

  $('#year-calculation').html(addCommas(Math.round(calc.annual/(hourly*calc.per_hour))) + ' years' );
  $('#your-time').html( (((hourly*2080)/ calc.annual) * 52 * 5 * 8).toFixed(1) + " hours");
});

當然,如果$('#HourlyWageOutput')已在HTML中定義,則無需設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM