javascript - 验证日期

标签 javascript forms function

我有一个要求我验证日期的 javascript 类作业。老师提供了一个实际验证的函数,剩下的就看我自己了。我已经为此工作了几个小时,但我被困住了。这是我到目前为止所拥有的...

<html>
<head>
<title>Date Validation</title>
<script type="text/javascript"> 

var month = document.validateDate.month.value;
var day = document.validateDate.day.value;
var year = document.validateDate.year.value;



function validDate( month, day, year) 
{ 
   // Test for leap year 
    if ((year % 400 == 0) || (year % 4 == 0) &&                 
       !(year % 100 == 0)) 
          leap = true; 
    else 
          leap = false; 

    // Validate date                              // Assume a valid date-test otherwise
    if (year < 1900 || year > 2050)               // year must be four digits and      
        return false;                             //     within reasonable range 
    else if ((month < 1) || (month > 12) ||       // test general date and month range 
             (day < 1) || (day > 31)) 
        return false;      
    else if (((month == 4) || (month == 6) ||     // test 30 Day months 
              (month == 9) || (month == 11)) && (day == 31)) 
        return false;      
    else if (month == 2 && leap && day > 29)      // test February leap years 
        return false;          
    else if (month == 2 &&  !leap && day > 28)    // test February NON-leap years 
        return false;          
    else 
        return true;                              // otherwise, date is OK 

} 
</script>
<body>

<h1>Date Validator</h1>

<p>Please enter a date to be validated, then press "Validate"</p>
<form action="" name="validateDate">
<select name="month">
<option value="1">January
<option value="2">February
<option value="3">March
<option value="4">April
<option value="5">May
<option value="6">June
<option value="7">July
<option value="8">August
<option value="9">September
<option value="10">October
<option value="11">November
<option value="12">December
</select>

<select name="day">
<option value="1">1
<option value="2">2
<option value="3">3
<option value="4">4
<option value="5">5
<option value="6">6
<option value="7">7
<option value="8">8
<option value="9">9
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
<option value="24">24
<option value="25">25
<option value="26">26
<option value="27">27
<option value="28">28
<option value="29">29
<option value="30">30
<option value="31">31
</select>

<select name="year">
<option value="2011">2011
<option value="2012">2012
<option value="2013">2013
<option value="2014">2014
<option value="2015">2015
<option value="2016">2016
<option value="2017">2017
<option value="2018">2018
<option value="2019">2019
<option value="2020">2020
</select>

<input type="button" value="Validate" onclick="validDAte( month, day, year)"/>
<br />

<input type="text" name="textbox" style="width:275"/>
</form>

</body>
</html>

实际功能就是提供的功能。我放在那里的变量“月”、“日”和“年”。我可以获得值,但无法让它们在函数中工作。

最终结果是底部的文本框显示“1/1/2011 是有效日期”之类的内容。或“2/31/2011”不是有效日期。”请帮忙...

最佳答案

你有:

<input type="button" value="Validate" onclick="validDAte( month, day, year)"/>
                                                     ^ misspelled

拼写错误(a 在 validDate 中大写错误)。也许这是问题的一部分?

关于javascript - 验证日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8145114/

相关文章:

javascript - 如何在表单元素中将按钮标记为事件 onclick

C++:调用模板类的非模板函数

c - 为什么我们不能比较 int 变量和 c 中的 int 返回类型函数?

ios - Swift 通过 UITabBarController 访问 viewController 的函数

javascript - 坚持使用 addEventListener

javascript - 如何在 redux 中实现 'load more' 功能?

javascript - 使用 javascript 进行 JSON 重构(合并内容)

javascript - gulp 构建时的 BrowserslistError(name)

javascript - 如何在选项标签中为同一个名称设置多个值?

php - 将数据保存在 PHP 表单上以供以后使用