1

我什至对 javascript 都不陌生。只是通过一些教程学习,但我在 html 中有三个 slelct 框,如下所示。

html格式。

<table>
<form id="enrolment" name="enrolment"  onsubmit="return datevalidate();" action=""    method="POST" >
<div style="text-align: center"><h3>Enrolement Form</h3></div>
<hr>
<div style="text-align: center"><h4>Personal details.</h4></div>
<hr>
<tr>
<td align="left">Course Date:</td>
<td align="left"> 
<select name="Coursedate" id="Coursedate">
<option selected="" value="Default">Date</option>
<option value="1">1</option>
<option value="2">2</optio

n>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="coursemonth" id="coursemonth">
<option selected="" value="Default">Month</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select name="courseyear" id="courseyear">
<option selected="" value="Default">year</option>
<option value="2014">2014</option>
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
<option value="2004">2004</option>
<option value="2003">2003</option>
<option value="2002">2002</option>
<option value="2001">2001</option>
<option value="2000">2000</option>
<option value="1999">1999</option>
<option value="1998">1998</option>
<option value="1997">1997</option>
<option value="1996">1996</option>
<option value="1995">1995</option>
<option value="1994">1994</option>
<option value="1993">1993</option>
<option value="1992">1992</option>
<option value="1991">1991</option>
<option value="1990">1990</option>
<option value="1989">1989</option>
<option value="1988">1988</option>
<option value="1987">1987</option>
<option value="1986">1986</option>
<option value="1985">1985</option>
<option value="1984">1984</option>
<option value="1983">1983</option>
<option value="1982">1982</option>
<option value="1981">1981</option>
<option value="1980">1980</option>
<option value="1979">1979</option>
<option value="1978">1978</option>
<option value="1977">1977</option>
<option value="1976">1976</option>
<option value="1975">1975</option>
<option value="1974">1974</option>
<option value="1973">1973</option>
<option value="1972">1972</option>
<option value="1971">1971</option>
<option value="1970">1970</option>
<option value="1969">1969</option>
<option value="1968">1968</option>
<option value="1967">1967</option>
<option value="1966">1966</option>
<option value="1965">1965</option>
<option value="1964">1964</option>
<option value="1963">1963</option>
<option value="1962">1962</option>
<option value="1961">1961</option>
<option value="1960">1960</option>
<option value="1959">1959</option>
<option value="1958">1958</option>
<option value="1957">1957</option>
<option value="1956">1956</option>
<option value="1955">1955</option>
<option value="1954">1954</option>
<option value="1953">1953</option>
<option value="1952">1952</option>
<option value="1951">1951</option>
<option value="1950">1950</option>
<option value="1949">1949</option>
<option value="1948">1948</option>
<option value="1947">1947</option>
<option value="1946">1946</option>
<option value="1945">1945</option>
<option value="1944">1944</option>
<option value="1943">1943</option>
<option value="1942">1942</option>
<option value="1941">1941</option>
<option value="1940">1940</option>
<option value="1939">1939</option>
<option value="1938">1938</option>
<option value="1937">1937</option>
<option value="1936">1936</option>
<option value="1935">1935</option>
<option value="1934">1934</option>
<option value="1933">1933</option>
<option value="1932">1932</option>
<option value="1931">1931</option>
<option value="1930">1930</option>
<option value="1929">1929</option>
<option value="1928">1928</option>
<option value="1927">1927</option>
<option value="1926">1926</option>
<option value="1925">1925</option>
<option value="1924">1924</option>
<option value="1923">1923</option>
<option value="1922">1922</option>
<option value="1921">1921</option>
<option value="1920">1920</option>
<option value="1919">1919</option>
<option value="1918">1918</option>
<option value="1917">1917</option>
<option value="1916">1916</option>
<option value="1915">1915</option>
<option value="1914">1914</option>
<option value="1913">1913</option>
</select>
</td>
</tr>
<tr>
<td>
<input type="submit" name="submit" value="validate">
</td>
</tr>
</form>
</table> 

而javascript如下

    <script>
function datevalidate()
{
var d = new Date();
var date = d.getDate();
var month = d.getMonth()+1;
var year = d.getFullYear();
var cdate = document.getElementById("Coursedate").value;
var cmonth = document.getElementById("coursemonth").value;
var cyear = document.getElementById("courseyear").value;
if (cdate > date && cmonth >= month && cyear >= year)
{
alert("Date is greater");
}
else 
if(cdate < date && cmonth > month && cyear >= year)
{
alert("Month and year greater");
}
else 
if(cdate < date && cmonth >= month && cyear > year)
{
alert(" year greater");
}
else 
if(cdate > date && cmonth < month && cyear > year)
{
alert(" year greater");
}

}
</script>

不知何故,我觉得 mysqlf 这不是很令人印象深刻。

如何在 javascript 中获得完整的验证。有教程吗?我需要日期不应超过当前日期。

提前致谢

印度阿莫德

4

3 回答 3

1

为了更好地处理 Javascript 中的日期,请查看另一个问题:使用 JavaScript 比较两个日期

话虽如此,既然您在谈论验证,因为 Javascript 是一种客户端语言,您永远无法使用您的代码获得完整的日期验证。有人可以通过禁用 Javascript 来完全禁用代码,或者他们可以重写代码并将其用作 XSS 攻击的框架。

最好的方法是使用 PHP、.Net、Java 等服务器端语言。

最终,您将让代码仅打印今天日期之前的日期,然后有人可以在未来提交日期的唯一方法是他们传递修改后的变量。然后,与其使用客户端语言进行过滤,不如使用服务器端语言来验证代码,并在将查询传递到数据库之前确保变量在参数内。

于 2013-04-24T19:06:13.477 回答
0
// day : 1-31
// month : 1-12
function dateIsValid(day, month, year) {
    return !isNaN(new Date([month, day, year].join('/')).getDate());
}

它不是最漂亮的,但我依赖于这样一个事实,即传递给 JavaScript 中 Date 类的构造函数的无效日期将为您返回一个时间戳为 NaN 的日期对象。

所以很明显,这可以处理像闰年这样的极端情况。

编辑:

实际上,这并不是万无一失的。天数(最多 31 天)可以溢出到下个月。

new Date([2, 31, 2012].join('/')); // Fri Mar 02 2012
于 2013-04-24T19:17:12.087 回答
-1

我已经使用 javascript 完成了日期验证,例如日、月和年验证

<html>
<head>
        <title></title>
        <script language = "Javascript">
                // Required variable
                var digits="0123456789";
                //non-digit Characters which are allowed in phone number
                var phoneNumChacters="()-";
                //Chacter are allowed in international phone numeber
                var validWorldPhoneCars=phoneNumChacters+ "+";
                var minDigitsphoneNum=9;

                function isInteger(k)
                {
                        var i;
                        for(i=0; i<k.lenght; i++)
                        {
                                var h=k.charAt(i);
                                if((h<"0") ||(h>"9"))
                                        return false;
                        }
                        // all are numbers
                        return true;
                }
                function trim(k)
                {
                        var i;
                        var returnStringValue ="";
                        //character is not a whitespace, append to returnString.
                        for(i=0; i<k.lenght; i++)
                        {
                                var h=k.charAt(i);
                                if(h!=" ")
                                        returnStringValue +=h;
                        }
                        return returnStringValue;
                }
                function stripCharsInBag(k, bag)
                {
                        var i;
                        var returnStringValue="";
                        for(i=0; i<k.lenght; i++)
                        {
                                var h=k.charAt(i);
                                if(bag.indexOf(h)==-1)
                                        returnStringValue +=h;
                        }
                        return returnStringValue;
                }
                function CheckInternationalPhoneNum(strPhone)
                {
                        var bracket =3;
                        strPhone=trim(strPhone);
                        if(strPhone.indexOf("+")>1)
                                return false;
                        if(strPhone.indexOf("-")!=-1)
                                bracket=bracket+1;
                        if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)
                                return false;
                        var brchr=strPhone.indexOf("(");
                        if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")
                                return false;
                        if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)
                                return false;
                        k=stripCharsInBag(strPhone,validWorldPhoneCars);
                        return (isInteger(k) && k.lenght>=minDigitsphoneNum);
                }
                function ValidateForm()
                {
                        var phoneNumber =document.sampleForm.txtPhone;

                        if((phoneNumber.value==null)||(phoneNumber.value==""))
                        {
                                alert ("Please enter you phone number");
                                phoneNumber.focus();
                                return false;
                        }
                        if(phoneNumber.value<9)
                        {
                                alert("Number is Less then 9 ");
                                phoneNumber.focus();
                                return false;
                        }
                        if(CheckInternationalPhoneNum(phoneNumber.value)==false)
                        {
                                alert("Enter a valid number");
                                phoneNumber.value="";
                                phoneNumber.focus();
                                return false;
                        }
                }

        </script>
</head>
<body>
        <center>
        <form name="sampleForm" method="post" action="" onSubmit="return ValidateForm()">
        <p>Enter a phone number : <input type="text" name="txtPhone"></p>
        <p><input type="submit" name="Submit" value="Submit"></p>
    </form>
   </center>
</body>
</html>
于 2014-01-25T08:52:52.207 回答