大家好我不熟悉javascript&我写了一个脚本来验证表单。我有一些问题,我坚持使用1.我不确定如何验证我的日期也测试闰年和31天的月份。 2.输入该日期后,如果要提醒日期不正确,请确保日期不是过去的日期。 3.如何在同一个警报框中组合所有警报。就像我说我是javascript的新手,所以一个简单的解释将非常感激。提前谢谢你的时间:)。下面是我的剧本。
(javascript与此表单一起使用)
function validateForm() {
// this part of the script will collate all errors into one should the user leave an input blank
var Fname=document.forms["myForm"]["fname"].value;
var Lname=document.forms["myForm"]["lname"].value;
var address=document.forms["myForm"]["addr1"].value;
var postcode=document.forms["myForm"]["pcode"].value;
var email=document.forms["myForm"]["email"].value;
var number=document.forms["myForm"]["tel"].value;
var date=document.forms["myForm"]["mydate"].value;
if (Fname == null || Fname == "" || Lname == null || Lname == ""
|| address == null || address == "" || !postcode || !email
|| !number || (myForm.sex[0].checked == false)
&& (myForm.sex[1].checked == false)
|| (myForm.age[0].checked == false)
&& (myForm.age[1].checked == false)
&& (myForm.age[2].checked == false)
&& (myForm.age[3].checked == false)
&& (myForm.age[4].checked == false)
|| !date) {
alert("Please make sure all fields are filled or checked correctly out ");
return false;
}
// end of collating script
// start of postcode script
var regPostcode = /^[a-zA-Z]{1,2}\d[\dA-Za-z]? \d[a-zA-Z]{2}$/;
if (!postcode.match(regPostcode))
{
alert("That Post Code is incorrect, correct way mk4 4tr");
return false;
}
// end of postcode script
// start of email script
var regEmail = /^\S+@\S+\.\S+$/;
if (!email.match(regEmail))
{
alert("That email is incorrect");
return false;
}
// end of email script
// start of phone number script
var phonestring = /^(?:0|\+44)[12378]\d{8,9}$/;
if (!number.match(phonestring)) {
alert(" correct format 01908234837");
return false;
}
// end of phone script
// start of gender script
if ((myForm.sex[0].checked == false) && (myForm.sex[1].checked == false)) {
alert("Please choose your Gender: Male or Female");
return false;
}
// end of gender script
// start of age group script
if ((myForm.age[0].checked == false)
&& (myForm.age[1].checked == false)
&& (myForm.age[2].checked == false)
&& (myForm.age[3].checked == false)
&& (myForm.age[4].checked == false)) {
alert("please select an age group");
return false;
}
// end of age script
// start of datefield
var dateformat = /^(?:(?:31\/(?:0[13578]|1[02])|(?:29|30)\/(?:0[13-9]|1[012])|(?:0[1-9]|1\d|2[0-8])\/(?:0[1-9]|1[0-2]))\/[2-9]\d{3}|29\/02\/(?:[2-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[3579][26])00))$/;
if (!date.match(dateformat)) {
alert("format incorrect use dd/mm/yyyy make sure you are entering correct days to the month remember 30 days have september, april, june & november, only 28 days in february unless leap year next is 2016");
return false;
}
// end of date field
// start of terms and condition script
if (myForm.tandc.checked == false) {
alert("Please accept the terms and conditions");
return false;
} else {
alert(" Thank you a member of our team will get back to you shortly");
return true;
}
}
答案 0 :(得分:0)
也许你会看一下真正的图书馆:Moment.js,尤其是函数isBefore()
否则:
答案 1 :(得分:0)
1 - Javascript: how to validate dates in format MM-DD-YYYY?
2 - 您可以使用库:http://momentjs.com/或http://www.datejs.com/
3 - 无需选择检查所有组合
答案 2 :(得分:0)
如果您不想包含其他.js,您还可以创建日期对象并自行验证。
var valDate = new Date();
var dateToCheck = new Date(yourdate);//should create a date from a DateString
if( dateToCheck < valDate ) {
//some error here
}
答案 3 :(得分:0)
$ split_array =($('#MyText_input_1')。val())。split(“”); // alert($ split_array);
/*** past date validation script ***/
var c = $split_array[0]; // this is the format of the date coming in.
var temp = new Array();
temp = c.split('-');
var x = new Date ( temp[1]+" "+temp[0]+", "+temp[2] );
//alert((new Date().getTime()));
if (x.getTime() < (new Date().getTime())) {
alert('past date');
return false;
}
/*** end script ***/