JavaScript没有验证响应
我是javascript新手,我正在尝试创建一个简单的表单验证。当我点击提交按钮时,什么也没发生。我已经看了一段时间的例子,但我似乎不知道我错在哪里。任何建议: 在这篇文章之后,我将把它全部分解,并开始缩小。但与此同时,我觉得另一双眼睛不会受伤,很可能我做错了什么可怕的事 HTML:JavaScript没有验证响应,javascript,html,Javascript,Html,我是javascript新手,我正在尝试创建一个简单的表单验证。当我点击提交按钮时,什么也没发生。我已经看了一段时间的例子,但我似乎不知道我错在哪里。任何建议: 在这篇文章之后,我将把它全部分解,并开始缩小。但与此同时,我觉得另一双眼睛不会受伤,很可能我做错了什么可怕的事 HTML: <form name="form" action="index.html" onsubmit="return construct();" method="post"> <label>
<form name="form" action="index.html" onsubmit="return construct();" method="post">
<label>Your Name:<span class="req">*</span> </label>
<input type="text" name="name" /><br />
<label>Company Name:<span class="req">*</span> </label>
<input type="text" name="companyName" /><br />
<label>Phone Number:</label>
<input type="text" name="phone" /><br />
<label>Email Address:<span class="req">*</span></label>
<input type="text" name="email" /><br />
<label>Best Time to be Contacted:</label>
<input type="text" name="TimeForContact" /><br />
<label>Availability for Presenting:</label>
<input type="text" name="aval" /><br />
<label>Message:</label>
<textarea name="message" ROWS="3" COLS="30"></textarea>
<label>First Time Presenting for AGC?:<span class="req">*</span></label>
<input type="radio" name="firstTime" value="Yes" id="yes" /><span class="small">Yes</span>
<input type="radio" name="firstTime" value="No" id="no"/><span class="small">No</span><br /><br />
<input type="submit" name="submit" value="Sign-Up" />
</form>
你的名字:*
公司名称:*
电话号码:
电邮地址:*
联系的最佳时间:
可供展示的物品:
信息:
首次为AGC演示?:*
对
否
JavaScript:
function construct() {
var name = document.forms["form"]["name"].value;
var companyName = document.forms["form"]["companyName"].value;
var email = document.forms["forms"]["email"].value;
var phone = document.forms["forms"]["phone"].value;
var TimeForC = document.forms["forms"]["TimeForContact"].value;
var availability = document.forms["forms"]["aval"].value;
if (validateExistence(name) == false || validateExistence(companyName) == false)
return false;
if (radioCheck == false)
return false;
if (phoneValidate(phone) == false)
return false;
if (checkValidForOthers(TimeForC) == false || checkValidForOthers(availability) == false)
return false;
if (emailCheck(email) == false)
return false;
}
function validateExistence(name) {
if (name == null || name == ' ')
alert("You must enter a " + name + " to submit! Thank you."); return false;
if (name.length > 40)
alert(name + " is too long for our form, please abbreviate."); return false;
}
function phoneValidate(phone) {
if (phone.length > 12 || phone == "" || !isNaN(phone))
alert("Please enter a valid phone number."); return false;
}
function checkValidForOthers(name) {
if (name.length > 40)
alert(name + " is too long for our form, please abbreviate."); return false;
}
function messageCheck(message) {
var currentLength = name.length;
var over = 0;
over = currentLength - 200;
if (name.length > 200)
alert(name + " is too long for our form, please abbreviate. You are " + over + " characters over allowed amount"); return false;
}
function radioCheck() {
if (document.getElementById("yes").checked == false || document.getElementById("no").checked == false)
return false;
}
function emailCheck(email) {
var atpos = email.indexOf("@");
var dotpos = email.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {
alert("Not a valid e-mail address");
return false;
}
}
函数构造(){
var name=document.forms[“form”][“name”].value;
var companyName=document.forms[“form”][“companyName”].value;
var email=document.forms[“forms”][“email”].value;
var phone=document.forms[“forms”][“phone”].value;
var TimeForC=document.forms[“forms”][“TimeForContact”].value;
var可用性=document.forms[“forms”][“aval”].value;
if(validateExistence(name)==false | | validateExistence(companyName)==false)
返回false;
如果(radioCheck==false)
返回false;
如果(电话验证(电话)=错误)
返回false;
if(checkValidForOthers(TimeForC)==false | | checkValidForOthers(availability)==false)
返回false;
if(emailCheck(email)==false)
返回false;
}
函数validateExistence(名称){
如果(名称==null | |名称=='')
警告(“您必须输入“+名称+”才能提交!谢谢。”);返回false;
如果(name.length>40)
警告(名称+“对于我们的表单太长,请缩写。”);返回false;
}
功能phoneValidate(电话){
如果(phone.length>12 | | phone==“”| |!isNaN(phone))
警报(“请输入有效的电话号码”);返回false;
}
其他(名称)的功能检查有效性{
如果(name.length>40)
警告(名称+“对于我们的表单太长,请缩写。”);返回false;
}
函数messageCheck(消息){
var currentLength=name.length;
var大于等于0;
超过=电流长度-200;
如果(name.length>200)
警告(名称+”对于我们的表单太长,请缩写。您超出允许的金额“+超过+”个字符);返回false;
}
函数无线电检查(){
if(document.getElementById(“yes”).checked==false | | document.getElementById(“no”).checked==false)
返回false;
}
功能emailCheck(电子邮件){
var atpos=email.indexOf(“@”);
var dotpos=email.lastIndexOf(“.”);
如果(atpos<1 | | dotpos=email.length){
警报(“不是有效的电子邮件地址”);
返回false;
}
}
我调用的函数有误吗?老实说,我不确定我会错在哪里我不明白如何调试我的代码。。。我正在使用chrome,控制台中没有收到任何错误。有没有一种方法可以设置断点来逐步遍历javascript 我意识到我只是在上面扔了很多代码,所以提前感谢您对其进行筛选 这里有一个错误: 替换
var email=document.forms[“forms”][“email”].value代码>
通过var email=document.forms[“form”][“email”].value代码>
您的js中有很多地方:
var email=document.forms[“forms”][“email”].value
var phone=document.forms[“forms”][“phone”].value
var TimeForC=document.forms[“forms”][“TimeForContact”].value
var可用性=document.forms[“forms”][“aval”].value
将表单误键入为表单
有没有办法设置断点来逐步遍历javascript?
是有一种设置断点的方法:
请参阅以下链接,了解在Chrome调试器控制台中设置断点的方法:
以下几点应该可以解决眼前的问题:
function construct(form) {
var
name = form["name"].value,
companyName = form["companyName"].value,
email = form["email"].value,
phone = form["phone"].value,
TimeForC = form["TimeForContact"].value,
availability = form["aval"].value
;
if (!validateExistence(name) || !validateExistence(companyName)) {
return false;
}
else if (!radioCheck) {
return false;
}
else if (phoneValidate(phone) == false) {
return false;
}
else if (!checkValidForOthers(TimeForC) || !checkValidForOthers(availability)) {
return false;
}
else if (emailCheck(email) == false) {
return false;
}
}
您在表单文档中有一个输入错误。表单[“表单”]
,其中“表单”不存在。您可以使用this
将当前元素传递到函数中,而不是总是遍历对象以到达表单
<form action="index.html" onsubmit="return construct(this);" method="post">
如果您刚开始使用大括号,最好确保设置好所有大括号(即花括号),因为这将帮助您避免混淆对齐和大括号匹配。替换var email=document.forms[“forms”][“email”].value代码>
借
您的第一个问题是表单
,您的意思是表单
。看
但您的验证代码还有其他问题,例如:
if (name == null || name == ' ')
在这里,您将检查name
是否为null或name是否为单个空格。我假设您想检查字段是否为空,但在您的条件下,完全为空的字符串将计算为false,两个空格也是如此。您可能想做的事情如下:
if (!name) {
// tell the user they need to enter a value
}
Javascript方便地(有时也不方便)将null、空字符串或充满空白的字符串解释为false,因此这应该涵盖您
您还有许多其他问题,请参见:
大多数问题已被其他人指出
- 当一个字符后面有多行时,需要使用大括号
{}
if
语句李>
- 当通过验证时,需要返回true
测试或Javascript将把缺少返回值解释为false李>
- 只有当两个单选按钮都被选中时,
radioCheck
才会通过
- 您可以检查您的电话号码是否为NaN(即,它是一个号码),如果为,则返回false
if (!name) {
// tell the user they need to enter a value
}
if (name == null || name == ' ')
alert("You must enter a " + name + " to submit! Thank you.");
return false;
alert("You must enter a " + name + " to submit! Thank you."); return false;
function validateExistence(name, field) {
if (name == null || name == ' ') {
alert("You must enter a " + field + " to submit! Thank you.");
return false;
} else if (name.length > 40)
alert(field + "value is too long for our form, please abbreviate.");
return false;
}
}
if (radioCheck == false)
if (document.getElementById("yes").checked == false || document.getElementById("no").checked == false) return false;
function myFunction() {
var data; //The Values can be like as null,blank,undefined,zero you can test
if(!(!(data)))
{
alert("data "+data);
}
else
{
alert("data is "+data);
}
}