为什么';Javascript验证我的html代码吗?
这是我第一次尝试使用javascript和表单;由于某些原因,我的html网站元素没有被验证,我不知道为什么。我使用此表单的目标是尝试验证旁边有“*”的元素。出于某种原因,唯一被验证的元素是电子邮件,而不是其他。姓名、日期和复选框都不是。我一直在努力寻找解决办法,但似乎没有任何效果为什么';Javascript验证我的html代码吗?,javascript,html,forms,Javascript,Html,Forms,这是我第一次尝试使用javascript和表单;由于某些原因,我的html网站元素没有被验证,我不知道为什么。我使用此表单的目标是尝试验证旁边有“*”的元素。出于某种原因,唯一被验证的元素是电子邮件,而不是其他。姓名、日期和复选框都不是。我一直在努力寻找解决办法,但似乎没有任何效果 <!doctype html> <html> <head> <link href="styles.css" rel="stylesheet"> <
<!doctype html>
<html>
<head>
<link href="styles.css" rel="stylesheet">
<script src="script.js"></script>
<meta charset="utf-8">
<title>Form</title>
</head>
<body>
<div class="container">
<h1>Travel Reservation Form</h1>
<h4>* denotes mandotory field</h4>
<form name="myForm" action="action_page.php" onsubmit="return validateForm()" method="post">
<fieldset>
<legend>Personal Details</legend>
<label class="align">Full name:<span>*</span></label> <input type="text" name="fullname" placeholder="James Bond">
<br><br>
<label class="align">Email<span>*</span></label>
<input type="email" name="mail" placeholder="james@gmail.com">
<br><br>
<label class="align">Date of Birth<span>*</span></label> <input type="date" name="DOB" placeholder="dd/mm/yy">
</fieldset>
<br>
<label>Select Tour Package<span>*</span>:</label>
<select name="package">
<option value="1">Tokyo</option>
<option value="2">Shanghai</option>
<option value="3">Bangkok</option>
<option value="4">Jakarta</option>
<option value="5">Mumbai</option>
</select>
<label>Number of persons<span>*</span>:</label>
<select name="party">
<option value="1">One Adult</option>
<option value="2">Two Adults</option>
<option value="3">Three Adults</option>
<option value="4">Four Adults</option>
<option value="5">Five Adults</option>
</select>
<br><br>
<label>Arrival Date<span>*</span>:</label> <input type="date" name="arrival" placeholder="dd/mm/yy">
<br><br>
<p>What Intrests you the most?<span>*</span>:</p>
<input class="alignp" type="checkbox" name="interest" value="shopping"> Shopping <br><br>
<input class="alignp" type="checkbox" name="interest" value="dining"> Dining <br><br>
<input class="alignp" type="checkbox" name="interest" value="dancing"> Dancing <br><br>
<input class="alignp" type="checkbox" name="interest" value="SightS"> Sightseeing <br><br><br>
<label>Discount Coupon code:</label> <input type="text" name="dis_code" value=""><br><br>
<label>Terms and Conditions<span>*</span><input type="radio" name="tos" value="yes" checked>I agree</label>
<input type="radio" name="tos" value="yes">I disagree
<p>Please provide any additional information below:- </p>
<textarea name="message" rows="5" cols="45" placeholder="Please type here...."></textarea><br><br>
<button class="btn-submit" type="submit" value="Submit">Submit</button>
<button class="btn-reset" type="reset" value="Reset">Reset</button>
</form>
</div>
</body>
</html>
所以我不知道你的PHP表单做了什么,所以实际上我现在只提取了所有的表单代码。有很多小问题,但诚实的错误。示例:如果要继续验证其余字段,则不希望在每次验证后都使用return语句。我将一些单独的验证组合到if/else中,因为它们是同一字段上的验证。我用ID来让我的生活更轻松,因为我把表单代码甩了。您可以随意切换回您想要的内容。我还更新了您的正则表达式,因为date字段返回YYYY/MM/DD。因为在绑定回php表单之前,这不会在任何地方发布,您可以暂时使用它。我还取消了30个字符的检查,并在名称中添加了一个最大字段长度。您还可以为日期字段设置最小和最大日期范围以及一系列其他内容,以帮助字段本身更简单。还有一些库可以为您处理这类事情,您不必重新发明轮子,但是如果您只是想玩一下,这应该会让您开始。祝你好运
旅游预订表
*表示强制力场
个人资料
全名:*
电子邮件*
出生日期*
选择旅游套餐*:
东京
上海
曼谷
雅加达
孟买
人数*:
一个成年人
两个成年人
三个成年人
四个成年人
五个成年人
抵达日期*:
你最感兴趣的是什么?*:
购物
用餐
跳舞
观光
折扣券代码:
条款和条件*
我同意
我不同意
请提供以下任何附加信息:-
提交
//JavaScript文档
函数validateForm(){
var name=document.getElementById(“name”).value;
var email=document.getElementById(“email”).value;
var dob=document.getElementById(“dob”).value;
//选择框
var e=document.getElementById(“包”);
//选定项目
var packages=e.options[e.selectedIndex].value;
var arrival=document.getElementById(“arrival”).value;
//var利息=document.getElementById(“”)值;
var-tos=document.querySelector('input[name=“tos”]:checked')。值;
//var checkbox=document.getElementById(“”.value;;
var matches=name.match(/\d+/g);
var re=/^\d{4}([.\/-])\d{2}\1\d{2}$/;
如果(!name){
警告(“必须填写姓名”);
}否则{
如果(匹配!=null){
警报(“名称中有一个数字!:”+Name);
}
}
如果(!电子邮件){
提醒(“必须填写电子邮件”);
}否则{
if(validateEmail(email)==false){
警报(“必须输入有效电子邮件:“+电子邮件”);
}
}
如果(!dob){
警告(“出生日期不得为空”);
}否则{
如果(!目标匹配(重新)){
警报(“Dob具有无效的日期格式:“+Dob”);
}
}
如果(!到达){
警报(“到达日期不得为空”);
}否则{
如果(!到达。匹配(重新)){
警报(“Dob的日期格式无效:“+到达”);
}
}
如果(tos!=“同意”){
警惕(“您必须同意服务条款”);
}
}
功能验证电子邮件(电子邮件){
返回/\S+@\S+\.\S+/.test(电子邮件);
}
所以我不知道你的PHP表单做了什么,所以实际上我现在只提取了所有的表单代码。有很多小问题,但诚实的错误。示例:如果要继续验证其余字段,则不希望在每次验证后都使用return语句。我将一些单独的验证组合到if/else中,因为它们是同一字段上的验证。我用ID来让我的生活更轻松,因为我把表单代码甩了。您可以随意切换回您想要的内容。我还更新了您的正则表达式,因为date字段返回YYYY/MM/DD。因为在绑定回php表单之前,这不会在任何地方发布,您可以暂时使用它。我还取消了30个字符的检查,并在名称中添加了一个最大字段长度。您还可以为日期字段设置最小和最大日期范围以及一系列其他内容,以帮助字段本身更简单。还有一些库可以为您处理这类事情,您不必重新发明轮子,但是如果您只是想玩一下,这应该会让您开始。祝你好运
旅游预订表
*表示强制力场
个人资料
全名:*
电子邮件*
出生日期*
选择旅游套餐*:
东京
上海
曼谷
雅加达
孟买
人数*:
一个成年人
两个成年人
三个成年人
四个成年人
五个成年人
抵达日期*:
你最感兴趣的是什么?*:
购物
用餐
跳舞
观光
折扣券代码:
条款和条件*
我同意
我不同意
请提供以下任何附加信息:-
提交
//JavaScript文档
函数validateForm(){
var name=document.getElementById(“名称”).val
// JavaScript Document
function validateForm()
{
var name = document.forms["myForm"]["name"].value;
var email = document.forms["myForm"]["email"].value;
var dob = document.forms["myForm"]["DOB"].value;
var packages = document.forms["myForm"]["package"].value;
var arrival = document.forms["myForm"]["arrival"].value;
//var interest = document.forms["form"]["interest"].value;
var ToS = document.forms["myForm"]["tos"].value;
var checkbox = document.querySelector('input[name="interest"]:checked');
var matches = name.match(/\d+/g);
if (matches != null) {
alert("Name has a number in it!");
}
if (name == "") {
alert("Name must be filled out");
return false;
}
if (email == "") {
alert("Email must be filled out");
return false;
}
if (dob == "") {
alert("Date of Birth must not be empty");
return false;
}
if (arrival == "") {
alert("Arrival Date must not be empty");
return false;
}
if(ToS == false) {
alert("You must agree to the Terms of Service");
return false;
}
if(validateEmail(email) == false){
alert("Must enter a valid email");
}
re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
if(dob != '' && !dob.match(re)) {
alert("Invalid date format");
return false;
}
if(arrival != '' && !arrival.match(re)) {
alert("Invalid arrival date format") ;
return false;
}
if(name.length >= 30){
alert("Name must be less than 30 characters!");
return false;
}
if(!checkbox){
alert("Please select an interest!");
return false;
}
}
function validateEmail(email)
{
return /\S+@\S+\.\S+/.test(email);
}