Javascript/jQuery中selectbox的错误日期计算器在哪里?

Javascript/jQuery中selectbox的错误日期计算器在哪里?,javascript,jquery,date,drop-down-menu,leap-year,Javascript,Jquery,Date,Drop Down Menu,Leap Year,//检查闰年 $(.dateselboxes) .change( function(){ var y; y=$("#year").val(); var m; m=$("#month").val(); var d; //计算天数 var leapYear; if(y%4==0) { if(y%100==0) { if(y%400==0) {leapYear=true;} else {leapYear=false;} } else

//检查闰年

$(.dateselboxes) .change( function(){

var y; y=$("#year").val();
var m; m=$("#month").val();
var d;
//计算天数

var leapYear;
if(y%4==0)
{
    if(y%100==0)
    {
        if(y%400==0) {leapYear=true;}
        else {leapYear=false;}
    }
    else {leapYear=true;}
}
else {leapYear=false;}
//多次删除最后一个选项

var dz;
if(m==1 || m=3 || m=5 || m=7 || m=8 || m=10 || m=12) {dz=31;}
else if(m==2)
    {
        if(leapYear==true) {dz=29;}
        else {dz=28;}
    }
else {dz=30;}
})

$。日期选择框!这将不会选择任何内容,但是$.DateSelbox将进行选择。jQuery$接受一个字符串作为其表示选择器的参数

因为你的问题没有解释,也没有大量的代码,我根本不知道发生了什么

$。日期选择框!这将不会选择任何内容,但是$.DateSelbox将进行选择。jQuery$接受一个字符串作为其表示选择器的参数


因为你的问题没有解释,也没有大量的代码,我根本不知道发生了什么

如果您通过检查月份来计算天数,则使用single=而不是==。 替换为:

switch(dz)
    {
        case 28:
            for(i=0;i<3;i++)
            {$("#day option:last").remove();}
            break;
        case 29:
            for(i=0;i<2;i++)
            {$("#day option:last").remove();}
            break;
        case 30:
            $("#day option:last").remove();
            break;
        default:
            var axaxax=0;
            break;
    }

single=将为m变量指定新值,并始终计算为true,因此我假设您在一天中始终看到31。作为一种实践,我喜欢通过撤销支票来避免这种情况。ie:if0==x,因为您无法为0分配一个意外的单=将导致javascript错误,从而更容易避免错误

如果您通过检查月份来计算天数,则使用single=而不是==。 替换为:

switch(dz)
    {
        case 28:
            for(i=0;i<3;i++)
            {$("#day option:last").remove();}
            break;
        case 29:
            for(i=0;i<2;i++)
            {$("#day option:last").remove();}
            break;
        case 30:
            $("#day option:last").remove();
            break;
        default:
            var axaxax=0;
            break;
    }

single=将为m变量指定新值,并始终计算为true,因此我假设您在一天中始终看到31。作为一种实践,我喜欢通过撤销支票来避免这种情况。ie:if0==x,因为您无法为0分配一个意外的单=将导致javascript错误,从而更容易避免错误

问题在于将=赋值给变量m而不是比较==

if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) {dz=31;}
作为补充说明,您可以重写脚本的某些部分

leapYear var-它使用2条语句来减少它,但仍然保持可读性

if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) {dz=31;}
要删除最后一个选项,请执行0索引

leapYear = (y%4==0);
if (leapYear && (y%100==0) && !(y%400==0))
    leapYear=false;

问题在于将=赋值给变量m而不是比较==

if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) {dz=31;}
作为补充说明,您可以重写脚本的某些部分

leapYear var-它使用2条语句来减少它,但仍然保持可读性

if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) {dz=31;}
要删除最后一个选项,请执行0索引

leapYear = (y%4==0);
if (leapYear && (y%100==0) && !(y%400==0))
    leapYear=false;
在这里,这段代码在Chrome中运行,至少:

{$("#day option:gt(" + dz + ")").remove();}
现场演示:

给你,这段代码在Chrome中运行,至少:

{$("#day option:gt(" + dz + ")").remove();}

现场演示:

感谢您的帮助,我确实纠正了错误,但仍然无法获得此工作ID您是否也使用jQuery选择器纠正了问题?如果您仍然存在问题,了解您看到的问题以及HTML DOM的外观可能会帮助您获得更明确的答案。感谢您的帮助,我确实更正了错误,但仍然无法获得此工作ID您是否也使用jQuery选择器更正了此问题?如果您仍然存在问题,了解您看到的问题以及HTML DOM的外观可能会帮助您获得更明确的答案。您能否指定哪些不起作用?您能否指定哪些不起作用?