2 qq 15290009 qq_15290009 于 2016.03.01 10:54 提问

js出现问题??????
  //获取天数 
    function getDays(s1, s2) {
        var s1 = $("#EntTime31").val('');
        var s2 = $("#EntTime30").val('');
        var d1 = new Date(s2.replace(/-/g, '/'));
        var d2 = new Date(s1.replace(/-/g, '/'));
        var ms = Math.abs(d2.getTime() - d1.getTime());//毫秒
        var d = ms / 1000 / 60 / 60 / 24;//转为天
        return d;
    }

         $(document).ready(function () {

        //显示当前日期
        var d = new Date();
        var s2 = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
        $('#EntTime30').val(s2);

        //显示截止日期
        var d = new Date();
        var s1 = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
        $('#EntTime31').val(s1);
     $("#input,#input1").change(function () { $(':radio[id^="1-"]:checked').trigger('click'); 
            var day = getDays();
             Costcalculator3(input,input1,day );
        });

});
//计算逾期违约金
function Costcalculator3(input,input1,day ){
        input = parseFloat(input) || 0;
        input1 = parseFloat(input) || 0;
        day = parseFloat(day) || 0;

        var lj5 = 0;
        lj5 = input*input1/100*day*2;
        $("#lj5").val(lj5);
        }

图片说明
图片说明

算不了 是获取天数那快没参数 还是怎么的 在我的基础上改 谢谢
input 是金额 input1 是利率
错误在下面的图片

图片说明

4个回答

u010933908
u010933908   2016.03.01 11:55
已采纳

从逻辑看你的两个天数时间的天数差约等于0 的啊
//计算逾期违约金
function Costcalculator3(input,input1,day ){
input = parseFloat(input) || 0;

    input1 = parseFloat(input) || 0;应该是input1吧???
    day = parseFloat(day) || 0;
    var lj5 = 0;
    lj5 = input*input1/100*day*2;
    $("#lj5").val(lj5);
    }
u010933908
u010933908 回复热呛: 不客气
接近 2 年之前 回复
qq_15290009
qq_15290009 谢谢 能计算了
接近 2 年之前 回复
bulusli3
bulusli3   Ds   Rxr 2016.03.01 11:08
function getDays(s1, s2) {
    var s1 = $("#EntTime31").val();
    var s2 = $("#EntTime30").val();
    var d1 = new Date(s2.replace(/-/g, '/'));
    var d2 = new Date(s1.replace(/-/g, '/'));
    var ms = Math.abs(d2.getTime() - d1.getTime());//毫秒
    var d = ms / 1000 / 60 / 60 / 24;//转为天
    return d;
}

    这样改就可以了。 var s2 = $("#EntTime30").val(''); 表示给EntTime30赋值为'',而 var s2 = $("#EntTime30").val()才表示取值。
qq_15290009
qq_15290009 你帮我好好看看 谢谢
接近 2 年之前 回复
qq_15290009
qq_15290009 是能计算 但是计算的好离谱 公式是这样的 标的金额*利率*(截止日期-起算日期)*2 还有就是 标的金额 利率 截止日期-起算日期 这几个文本框改变任何一个都不能再重新计算了
接近 2 年之前 回复
fk002008
fk002008   2016.03.01 11:10

s2.replace(/-/g, '/')
显示是这个s2.replace不是一个函数

建议你先确认下
var s2 = $("#EntTime30").val('');

这个s2是什么
它是不是一个字符串

u010933908
u010933908   2016.03.01 11:13

这个错误信息一看就知道是因为s2的类型不是字符串类型,所以往上看代码就发现这里:var s2 = $("#EntTime30").val('');应该写成:var s2 = $("#EntTime30").val();因为一旦val这个函数里面有值的话(''是空字符串)返回的是对象,而不是你想要取的字符串的值,所以控制台会报错

qq_15290009
qq_15290009 可以计算了 但是计算的好离谱 公式是这样的 标的金额*利率*(截止日期-起算日期)*2 还有就是 标的金额 利率 截止日期-起算日期 这几个文本框改变任何一个都不能再重新计算了 你帮我好好看看谢谢
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!