0

我有这种情况:

两个日期选择器、两个值和一个选择(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>

我开始编写代码来检查输入日期并将其与取决于选择选项的值进行比较。

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" );
        }
    }
};

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

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

或者这是我的JSFiddle

4

2 回答 2

1

如果您将 id 更改#Total#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" );
    }
};
于 2013-07-06T06:28:40.910 回答
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')

if (option =='2')

现在功能运行良好。谢谢..

于 2013-07-06T06:25:44.857 回答