2013-06-04 29 views
1

我的javascript代码如下:为什么页面重定向到没有完成表单的动作属性?

<script> 
    function check(){ 
     if(document.getElementById("1").value=="") { 
      alert("enter 1st value"); 
      document.getElementById("1").focus(); 
      return; 
     } 
     else if(document.getElementById("2").value=="") { 
      alert("enter 2nd value"); 
      document.getElementById("2").focus(); 
      return; 
     } 
     return(true); 
    } 
</script> 

我的HTML页面

<form action="home.php" method="get"> 
    <input type="text" id="1"></input> 
    <input type="text" id="2"></input> 
    <input type="text" id="3"></input> 
    <input type="submit"onclick="check()"></input> 
</form> 

我离开的时候故意对输入字段为空,它的重点是,但立即重定向到home.php页面,而不进行进一步用于输入值。

回答

0

您在检查函数中返回void。如果您返回错误提交表单暂停。

<script> 
    function check(){ 
     if(document.getElementById("1").value==""){ 
      alert("enter 1st value"); 
      document.getElementById("1").focus(); 
      return false; // <<<< CHECK THIS LINE; 
     } 
     else if(document.getElementById("2").value==""){ 
      alert("enter 2nd value"); 
      document.getElementById("2").focus(); 
      return false; // <<<< CHECK THIS LINE 
     } 
     return(true); 
    } 
</script> 

//编辑 输入元件是所谓的自闭合标签。正确的语法是:

<input type="text" name="some_name" value="" /> 

而作为一个提交按钮应该被定义为:

<button type="submit">Button text</button> 
0

你需要改变你的问题像下面

function check(){ 
    if(document.getElementById("1").value==""){ 
     alert("enter 1st value"); 
     document.getElementById("1").focus(); 
     return false; 
    } 
    else if(document.getElementById("2").value==""){ 
     alert("enter 2nd value"); 
     document.getElementById("2").focus(); 
     return false; 
    } 
return(true); 
} 

如果你的函数返回false,那么它会阻止表单被发布。 所以里面的if条件返回false。

0
<html> 
    <head> 
     <script> 
      function check(){ 
       if(document.getElementById("1").value==""){ 
        alert("enter 1st value"); 
        document.getElementById("1").focus(); 
        return false; 
       } 
       else if(document.getElementById("2").value==""){ 
        alert("enter 2nd value"); 
        document.getElementById("2").focus(); 
        return false; 
       } 
       return true; 
      } 
     </script> 
    </head> 
    <body> 
     <form action="test.html" method="get"> 
      <input type="text" id="1"></input> 
      <input type="text" id="2"></input> 
      <input type="text" id="3"></input> 
      <input type="submit"onclick="return check()"></input> 
     </form> 
    </body> 
</html> 
0

您需要return false才能使提交被取消。

<form action="home.php" method="get"> 
    <input type="text" id="1"></input> 
    <input type="text" id="2"></input> 
    <input type="text" id="3"></input> 
    <input type="submit"onclick="return check()"></input> <!--Notice the return here--> 
</form> 

function check() 
{ 
    if(document.getElementById("1").value=="") 
    { 
     alert("enter 1st value"); 
     document.getElementById("1").focus(); 
     return false;//return false instead of void 
    } 
    else if(document.getElementById("2").value=="") 
    { 
     alert("enter 2nd value"); 
     document.getElementById("2").focus(); 
     return false;//return false instead of void 
    } 
    return true; 
} 

JSFiddle

0

你是不是第三场检查它是否是空的或不....然后怎么可能,如果它是空的停止?

它跟出来得到测试

也是必要的,以阻止该网页回事使用return false,因为它告诉浏览器复位这种行动。

然后用return check()代替 更改为

<html> 
    <script type="text/javascript"> 

     function check(){ 
      if(document.getElementById("1").value==""){ 
       alert("enter 1st value"); 
       document.getElementById("1").focus(); 
       return false; 
      } 
      else if(document.getElementById("2").value==""){ 
       alert("enter 2nd value"); 
       document.getElementById("2").focus(); 
       return false; 
      } 
      else if(document.getElementById("3").value==""){ 
       alert("enter 3nd value"); 
       document.getElementById("3").focus(); 
       return false; 
      } 
      return(true); 
     } 

    </script> 
    <form action="home.php" method="get"> 
    <input type="text" id="1"></input> 
    <input type="text" id="2"></input> 
    <input type="text" id="3"></input> 
    <input type="submit"onclick="return check()"></input> 
    </form> 

0
<form action="home.php" method="get" onSubmit="return check();"> 
<input type="text" id="1"></input> 
<input type="text" id="2"></input> 
<input type="text" id="3"></input> 
<input type="submit"></input> 
</form> 
相关问题