我有这个案子:
两个日期选择器,两个值和一个选择(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
答案 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')
现在功能很好。 谢谢..