2013-06-04 51 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> 
相關問題