Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript表单句柄不工作_Javascript_Validation_Return_Alert - Fatal编程技术网

Javascript表单句柄不工作

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

它不会返回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 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可能会证明您没有返回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可能会证明您没有返回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