Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期选择器_Javascript_Datepicker - Fatal编程技术网

Javascript日期选择器

Javascript日期选择器,javascript,datepicker,Javascript,Datepicker,我需要用户选择他/她的出生日期,我正在使用javascript和php var date_arr = new Array; var days_arr = new Array; date_arr[0]=new Option("January",31); date_arr[1]=new Option("February",28); date_arr[2]=new Option("March",31); date_arr[3]=new Option("April",30); date_arr

我需要用户选择他/她的出生日期,我正在使用javascript和php

    var date_arr = new Array;
var days_arr = new Array;

date_arr[0]=new Option("January",31);
date_arr[1]=new Option("February",28);
date_arr[2]=new Option("March",31);
date_arr[3]=new Option("April",30);
date_arr[4]=new Option("May",31);
date_arr[5]=new Option("June",30);
date_arr[6]=new Option("July",31);
date_arr[7]=new Option("August",30);
date_arr[8]=new Option("September",30);
date_arr[9]=new Option("October",31);
date_arr[10]=new Option("November",31);
date_arr[11]=new Option("December",30);

function fill_select(f)
{
        document.writeln("<SELECT name=\"months\"               onchange=\"update_days(FRM)\">");
        for(x=0;x<12;x++)
                document.writeln("<OPTION value=\""+date_arr[x].value+"\">"+date_arr[x].text);
        document.writeln("</SELECT><SELECT name=\"days\"></SELECT>");
        selection=f.months[f.months.selectedIndex].value;
}

function update_days(f)
{
        temp=f.days.selectedIndex;
        for(x=days_arr.length;x>0;x--)
        {
                days_arr[x]=null;
                f.days.options[x]=null;
         }
        selection=parseInt(f.months[f.months.selectedIndex].value);
        ret_val = 0;
        if(f.months[f.months.selectedIndex].value == 28)
        {
                year=parseInt(f.years.options[f.years.selectedIndex].value);
                if (year % 4 != 0 || year % 100 == 0 ) ret_val=0;
                else
                        if (year % 400 == 0)  ret_val=1;
                        else
                                ret_val=1;
        }
        selection = selection + ret_val;
        for(x=1;x < selection+1;x++)

        {
                days_arr[x-1]=new Option(x);
                f.days.options[x-1]=days_arr[x-1];
        }
        if (temp == -1) f.days.options[0].selected=true;
        else
             f.days.options[temp].selected=true;
}
function year_install(f)
{
        document.writeln("<SELECT name=\"years\" onchange=\"update_days(FRM)\">")
        for(x=1950;x<2005;x++) document.writeln("<OPTION value=\""+x+"\">"+x);
        document.writeln("</SELECT>");
        update_days(f)
}
var date\u arr=新数组;
var days\u arr=新数组;
日期_arr[0]=新期权(“1月”,31日);
日期=新期权(“2月”,28日);
日期=新期权(“3月31日”);
日期=新期权(“4月”,30日);
日期=新期权(“5月31日”);
日期【5】=新期权(“6月”,30日);
日期【6】=新期权(“7月31日”);
日期=新期权(“8月”,30日);
日期【8】=新期权(“9月”,30日);
日期【9】=新期权(“10月31日”);
日期【10】=新期权(“11月31日”);
日期【11】=新期权(“12月”,30日);
功能填充选择(f)
{
文件。书面形式(“”);
对于(x=0;x0;x--)
{
天数\u arr[x]=空;
f、 天。选项[x]=空;
}
selection=parseInt(f.months[f.months.selectedIndex].value);
ret_val=0;
如果(f.months[f.months.selectedIndex]。值==28)
{
year=parseInt(f.years.options[f.years.selectedIndex].value);
如果(年份%4!=0 | |年份%100==0)返回值=0;
其他的
如果(年份%400==0)ret_val=1;
其他的
ret_val=1;
}
选择=选择+重新选择;
对于(x=1;x对于(x=1950;x,您可能希望避免计算闰年和所有年份的麻烦,而改用

由于在点击“提交”时使用选项值,因此您不希望月份值包含天数(28、30、31),而是包含实际天数(1-12)

所以改变

for(x=0;x<12;x++)
    document.writeln("<OPTION value=\""+date_arr[x].value+"\">"+date_arr[x].text);
…变成

selection=parseInt(date_arr[f.months.selectedIndex].value);
ret_val = 0;
if(selection == 28)
{ // (...)

现在它应该工作得更好了。祝你好运。

使用firebug或调试器或dom查看器查看当firebug中的页面呈现时选项中的值:-一月二月三月月份月份使用月总数作为值>,但我不知道如何在代码中更改此值。Plz帮助(x=0;在你的问题上按“编辑”按钮,并添加一个你希望代码生成的格式示例。它非常有效。我查看了jQuery UI datepicker,非常酷。
for(x=0;x<12;x++)
    document.writeln("<OPTION value=\""+date_arr[x].value+"\">"+date_arr[x].text);
for(x=0;x<12;x++)
    document.writeln("<OPTION value=\""+(x+1)+"\">"+date_arr[x].text);
selection=parseInt(f.months[f.months.selectedIndex].value);
ret_val = 0;
if(f.months[f.months.selectedIndex].value == 28)
{ // (...)
selection=parseInt(date_arr[f.months.selectedIndex].value);
ret_val = 0;
if(selection == 28)
{ // (...)