根据两个不同的值控制用户日期选择

时间:2013-07-04 17:08:43

标签: javascript html html5 datepicker

我有这个案子:

两个日期选择器,两个值和一个选择(HTML术语)。

Select Start
<input type="date" name ="datepicker_start" id="datepicker" value=""  class="datepicker" size="20" />
<br>
Select End
<input type="date" name ="datepicker_end" id="datepicker2"  value="" class="datepicker" size="20" />
<br>
Balance 1
<input type="number" name="tleave" id="Total" value="20" readonly="true" size="10" />
<br>
Balance 2
<input type="number" name="tleave2" id="Total2" value="2" readonly="true" size="10" />
<br>
<select onchange="checkdate();" name="LeaveType">
    <option value="0"> select balance</option>
    <option value="1"> Balance 1</option>
    <option value="2"> Balance 2</option>
    <option value="3"> Balance 3</option>
</select>

我开始设置一个代码来检查输入日期,并根据select选项的选择将其与值进行比较。

function checkdate() {

    var start = new Date( $('#datepicker').val() ).getTime(),
        end = new Date( $('#datepicker2').val() ).getTime();
        diff = ((end - start) / 86400000) ;
        //1000 * 60 * 60 * 24 = 1 day = 86400000
    if ($('#element option[value="1"]').attr("selected", "selected"))
    {
        if( diff > $('#Total').val())
        {
            alert( diff+ " days of balance 1 more than the available" );
        }
    }
    if ($('#element option[value="2"]').attr("selected", "selected"))
    {
        if( diff > $('#Total2').val())
        {
            alert( diff+ " days of balance 2 more than the available" );
        }
    }
};

即。让我们考虑用户有两种不同的余额,所以在他选择持续时间后,根据他想要的余额类型,如果余额少于要求,该函数应该返回一个弹出窗口。

当前的问题是:该功能在更改选项时没有分离。(如果您查看下面的代码,您会更好理解)

或者这是我的JSFiddle

2 个答案:

答案 0 :(得分:1)

如果您将#Total的ID更改为#Total1并使用此代码,则可以制作代码的较短版本:

function checkdate() {
    var start = new Date( $('#datepicker').val() ).getTime(),
        end = new Date( $('#datepicker2').val() ).getTime();
    var diff = ((end - start) / 86400000) ;
    var val = $('#LeaveType').val();
    if( diff > $('#Total'+val).val()){
        alert( diff+ " days of balance "+val+" more than the available" );
    }
};

答案 1 :(得分:0)

我设法解决了这个问题。 我在选择

中添加了ID
<select onchange="checkdate();" name="LeaveType" id="LeaveType">

问题出在以下几个方面:

if ($('#element option[value="1"]').attr("selected", "selected")) 

if ($('#element option[value="2"]').attr("selected", "selected"))

我将它们改为:

var option = document.getElementById("LeaveType").value;
if (option =='1')

AND

if (option =='2')

现在功能很好。 谢谢..