2017-08-08 60 views
0

我想计算start_date和end_date之间的总天数。在这里,我有两个文本框,它是end_date的一个文本框,另外一个用于start_date和end_date之间的总天数。我想要做的是当用户单击按钮时,end_date文本框填充结束日期和总天数文本框填充总数天 。任何人都可以帮助我吗?如何在两个不同的文本框上显示值

这是代码。

<html> 
<head> 

<script> 
$(document).ready(function() { 
    $('#txtDate').datepicker(); 
    $('#follow_Date').getDate(); 
    $('#dura').getValue(); 
    $('#mark').getValue(); 


}); 

function getdate() { 
    var sd = document.getElementById('txtDate').value; 
    var d = document.getElementById('dura').value; 
    var m = document.getElementById('mark').value; 

    var date = new Date(sd); 
    var newdate = new Date(date); 
    var duration = parseInt(d); 
    var marking = parseInt(m); 


    if (marking === 1) 
    { 
     newdate.setDate(newdate.getDate()); 
    } 
    else if (marking === 2) 
    { 
     newdate.setDate(newdate.getDate() + duration); 
    } 
    else if (marking === 3) 
    { 
     newdate.setDate((newdate.getDate() + duration)+1); 
    } 


    var dd = newdate.getDate(); 
    var mm = newdate.getMonth()+1; 
    var y = newdate.getFullYear(); 

    var someFormattedDate = y + '-' + mm + '-' + dd; 
    document.getElementById('follow_date').value = someFormattedDate; 

} 
function getdays() 
{ 
    var days = (follow_date.setdate(follow_date.getDate()) - newdate.setDate(newdate.getDate())); 
} 

</script> 
</head> 
<body> 

<p>Date: 
    <input id="txtDate" type="text" /> 
</p> 
<p>Duration : 
    <input id="dura" type="text" /> 
</p> 

<p>Marks: 
    <input id ="mark" type = "text"/> 
</p> 
<p> 
    <input type="button" onclick="getdate()" value="Fill Follow Date" /> 
</p> 
<p>End Date: 
    <input id="follow_date" type="text" onkeydown="getdate()" /> 
</p> 
<p>Days : 
    <input id="days" type="text" onkeydown="getdays()" /> 
</p> 

</body> 
</html> 
+2

看来你已经知道如何设置文本输入的值document.getElementById('follow_date')。value = someFormattedDate;'。那么你究竟在问什么? – xander

+0

theres two calculation。用于查找开始日期和结束日期之间的结束日期和总天数。现在的问题是,当我点击按钮时,只有结束日期的文本框才会显示结果。天文本框不显示任何东西。你懂我的意思吗 ? :D –

+0

为什么你不把它设置为seomething呢?这应该工作:'document.getElementById('days')。value = getdays();'?!用'onkeydown =“getdays()调用这个函数”“不会”没有“,因为你只计算日期并返回它,但是不要在那里使用它,如果你是这个意思的话。 – xander

回答

0

我不是很确定你到底想做什么,但是你的代码有很多错误。

您的getdays函数无法访问getdate函数的变量,例如, follow_datenewdate,您需要定义全局变量或将它们作为参数传递给您的函数以便使用它们。

而且你混合jQuery的功能与普通的JavaScript(如果你甚至已经包括jQuery的)..

这是你需要做的,以显示另一个变量作为输入值,看到评论的一小想法并添加了两行:

function getdate() { 
    var sd = document.getElementById('txtDate').value; 
    var d = document.getElementById('dura').value; 
    var m = document.getElementById('mark').value; 

    var date = new Date(sd); 
    var newdate = new Date(date); 
    var duration = parseInt(d); 
    var marking = parseInt(m); 


    if (marking === 1) 
    { 
     newdate.setDate(newdate.getDate()); 
    } 
    else if (marking === 2) 
    { 
     newdate.setDate(newdate.getDate() + duration); 
    } 
    else if (marking === 3) 
    { 
     newdate.setDate((newdate.getDate() + duration)+1); 
    } 


    var dd = newdate.getDate(); 
    var mm = newdate.getMonth()+1; 
    var y = newdate.getFullYear(); 

    var someFormattedDate = y + '-' + mm + '-' + dd; 
    document.getElementById('follow_date').value = someFormattedDate; 

    // added this two lines, that will set the days to your days input element 
    var days = (follow_date.setdate(follow_date.getDate()) - newdate.setDate(newdate.getDate())); 
    document.getElementById('days').value = days; 
} 

但是如前所述也有可能更多的问题的代码,我建议读一本好的JavaScript的指南,如果你想更好地unterstand它与简单的事情第一次启动,它是没有意义的重写你的代码,所以它只是工作我猜。

相关问题