Javascript表单句柄不工作
它不会返回false,也不会显示错误。见jfiddle 我的JavaScipt:Javascript表单句柄不工作,javascript,validation,return,alert,Javascript,Validation,Return,Alert,它不会返回false,也不会显示错误。见jfiddle 我的JavaScipt: function validateForm() { var error = ""; var x=document.getElementById('fname').value; var y=document.getElementById('lname').value; /* Additional variable defined here, commented out fo
function validateForm() {
var error = "";
var x=document.getElementById('fname').value;
var y=document.getElementById('lname').value;
/*
Additional variable defined here, commented out for debugging
*/
if ((x==null || x=="") || (y==null || y==""))
{
error += "-First and last name required. <br />";
}
/*
There were additional statements here, commented out for debugging
*/
if (error != ""){
alert(error);
//document.getElementById('error').innerHTML = "Error: " + error;
return false;
}
}
函数validateForm(){
var误差=”;
var x=document.getElementById('fname')。值;
var y=document.getElementById('lname').value;
/*
此处定义的附加变量,注释掉以进行调试
*/
如果((x==null | | x==”)| |(y==null | | y==”)
{
错误+=“-需要名字和姓氏。
”;
}
/*
这里还有其他语句,注释掉以进行调试
*/
如果(错误!=“”){
警报(错误);
//document.getElementById('error').innerHTML=“error:”+error;
返回false;
}
}
我还将onsubmit=“return validateForm()”
附加到表单中
有人能帮我看一下,告诉我我是否遗漏了什么吗?如果验证通过,您可能不会返回
false
,您可能会返回undefined
,因为您不会返回true
这会诱使你认为你的验证是正确的,而事实并非如此
添加返回true函数末尾的code>可能会证明您没有返回false
function validateForm() {
var error = "";
var x=document.getElementById('fname').value;
var y=document.getElementById('lname').value;
/*
Additional variable defined here, commented out for debugging
*/
if ((x==null || x=="") || (y==null || y==""))
{
error += "-First and last name required. <br />";
}
/*
There were additional statements here, commented out for debugging
*/
if (error != ""){
alert(error);
//document.getElementById('error').innerHTML = "Error: " + error;
return false;
}
alert("Actually, returning true!");
return true;
}
函数validateForm(){
var误差=”;
var x=document.getElementById('fname')。值;
var y=document.getElementById('lname').value;
/*
此处定义的附加变量,注释掉以进行调试
*/
如果((x==null | | x==”)| |(y==null | | y==”)
{
错误+=“-需要名字和姓氏。
”;
}
/*
这里还有其他语句,注释掉以进行调试
*/
如果(错误!=“”){
警报(错误);
//document.getElementById('error').innerHTML=“error:”+error;
返回false;
}
警告(“事实上,返回true!”);
返回true;
}
如果验证通过,您可能实际上没有返回false
,您可能返回未定义的
,因为您没有返回true
这会诱使你认为你的验证是正确的,而事实并非如此
添加返回true函数末尾的code>可能会证明您没有返回false
function validateForm() {
var error = "";
var x=document.getElementById('fname').value;
var y=document.getElementById('lname').value;
/*
Additional variable defined here, commented out for debugging
*/
if ((x==null || x=="") || (y==null || y==""))
{
error += "-First and last name required. <br />";
}
/*
There were additional statements here, commented out for debugging
*/
if (error != ""){
alert(error);
//document.getElementById('error').innerHTML = "Error: " + error;
return false;
}
alert("Actually, returning true!");
return true;
}
函数validateForm(){
var误差=”;
var x=document.getElementById('fname')。值;
var y=document.getElementById('lname').value;
/*
此处定义的附加变量,注释掉以进行调试
*/
如果((x==null | | x==”)| |(y==null | | y==”)
{
错误+=“-需要名字和姓氏。
”;
}
/*
这里还有其他语句,注释掉以进行调试
*/
如果(错误!=“”){
警报(错误);
//document.getElementById('error').innerHTML=“error:”+error;
返回false;
}
警告(“事实上,返回true!”);
返回true;
}
谢谢@Sohnee的建议,但我完全尝试了你发布的内容,而且我也没有收到“返回真值”警报。它必须返回false,但为什么没有警报?下面是一个JS提琴,显示它正在工作:-您最可能遇到的问题是JavaScript错误,例如文档。getElementById
失败,因为ID不正确(我猜)。在验证通过的情况下,如果使用问题中所示的onsubmit=“return validateForm()”
调用函数,则函数是否返回undefined
应该无关紧要:只有返回false
时才会阻止默认行为(即提交)。啊,是的,虽然未定义的
是错误的,但我只是测试了一下,表单仍然会提交。好吧-你会讨厌这个,但是你的}
语句中有一个
遗漏了:谢谢@Sohnee的建议,但是我完全按照你发布的内容进行了测试,我也没有收到“返回的真实”警报。它必须返回false,但为什么没有警报?下面是一个JS提琴,显示它正在工作:-您最可能遇到的问题是JavaScript错误,例如文档。getElementById
失败,因为ID不正确(我猜)。在验证通过的情况下,如果使用问题中所示的onsubmit=“return validateForm()”
调用函数,则函数是否返回undefined
应该无关紧要:只有返回false
时才会阻止默认行为(即提交)。啊,是的,虽然未定义的是错误的,但我刚刚测试过,表单仍然会提交。好吧-你会讨厌这个的,但是您的一条}
语句中缺少了
:您的代码是独立工作的:请注意,您不需要测试x
和y
是否为null
,因为它们被设置为值
属性,而该属性永远不会为null
。(另一方面,如果没有找到相关字段,则会出现错误,因为getElementById()
将返回null
)您的代码是独立工作的:请注意,您不需要为null
测试x
和y
,因为它们被设置为value
属性,而该属性永远不会为null
。(另一方面,如果没有找到相关字段,则会出现错误,因为getElementById()
将返回null
)