Javascript 在html下拉列表中验证日期
我有三个HTML下拉列表来选择年、月和日期。如果所选年份等于当前年份,则第二个和第三个列表仅显示截至当前日期的月份和日期。 我想用javascript编写这个代码。Javascript 在html下拉列表中验证日期,javascript,html,validation,date,Javascript,Html,Validation,Date,我有三个HTML下拉列表来选择年、月和日期。如果所选年份等于当前年份,则第二个和第三个列表仅显示截至当前日期的月份和日期。 我想用javascript编写这个代码。 这里我面临的问题是,当用户最初选择日期或月份时,它将如何执行?这是您想要的吗?试试这个网址,希望对你有帮助 演示-> 来源-> 下面的示例。如果先选择月和日,则它们不会更改,除非所选值不再有效。如果无效,它们将重置为1 HTML JavaScript(带JQuery) $(文档).ready(函数(){ 变量年份=新日期()
这里我面临的问题是,当用户最初选择日期或月份时,它将如何执行?这是您想要的吗?试试这个网址,希望对你有帮助 演示-> 来源->
下面的示例。如果先选择月和日,则它们不会更改,除非所选值不再有效。如果无效,它们将重置为1 HTML
JavaScript(带JQuery)
$(文档).ready(函数(){
变量年份=新日期().getFullYear();
//负荷年
对于(var i=2000;i(now.getMonth()+1))$(this.remove();
});
}否则{
对于(var i=1;inow.getDate())$(this.remove();
});
}否则{
风险值天数=31天;
var month=$('#month').val();
如果(月份==2){
如果($('#year').val()%4)==0)天=29;//闰年
其他天数=28天;
}如果(月==2 | |月==4 | |月==6 | |月==9 | |月==11){
天数=30天;
}
对于(var i=1;idays)
$(“#日选项[值='”+i+“]])。删除();
else if($(“#日选项[值=”+i+“]])).val()==未定义)
$(“#天”)。附加(“+i+”);
}
}
发布您的代码,有人可以帮助您我认为您必须限制日期范围。如果你能给我更好的解释,我可以帮你。最好让一个提琴手说的代码不仅仅是文字。张贴你的代码这个例子甚至都不正确。它允许你选择任何一年的2月30日,而不允许你选择任何一个月的31日
<body>
<select name="month" id="month"></select>
<select name="day" id="day"></select>
<select name="year" id="year"></select>
</body>
<script type ="text/javascript" src="http://code.jQuery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
var year = new Date().getFullYear();
// load years
for (var i=2000; i<=year; i++) $("#year").append('<option value=' + i + '>' + i + '</option>');
// load months
for (var i=1; i<=12; i++) $("#month").append('<option value=' + i + '>' + i + '</option>');
// load days
for (var i=1; i<=31; i++) $("#day").append('<option value=' + i + '>' + i + '</option>');
});
$(function() {
$('#year').change(function() {
var now = new Date();
if ($('#year').val()==now.getFullYear()) {
$('#month option').each(function() {
if ($(this).val()>(now.getMonth()+1)) $(this).remove();
});
} else {
for (var i=1; i<13; i++)
if ($("#month option[value='" + i + "']").val()==undefined)
$("#month").append('<option value=' + i + '>' + i + '</option>');
}
checkMonth();
});
$('#month').change(checkMonth);
});
function checkMonth() {
var now = new Date();
if ($('#year').val()==now.getFullYear() && $('#month').val()==(now.getMonth()+1)) {
$('#day option').each(function() {
if ($(this).val()>now.getDate()) $(this).remove();
});
} else {
var days = 31;
var month = $('#month').val();
if (month==2) {
if (($('#year').val() % 4) == 0) days = 29; // leap year
else days = 28;
} else if (month==2 || month==4 || month==6 || month==9 || month==11) {
days = 30;
}
for (var i=1; i<32; i++)
if (i>days)
$("#day option[value='" + i + "']").remove();
else if ($("#day option[value='" + i + "']").val()==undefined)
$("#day").append('<option value=' + i + '>' + i + '</option>');
}
}
</script>