1. 程式人生 > >如何防止表單預設提交 跳轉

如何防止表單預設提交 跳轉

                                        <div class="markdown_views">
            <p>表單一點選提交按鈕(submit)必然跳轉頁面,如果表單的action為空也會跳轉到自己的頁面,即效果為重新整理當前頁。 <br>

如下,可以看到一點選提交按鈕,瀏覽器的重新整理按鈕閃了一下:

這裡寫圖片描述

如果想要阻止表單的預設提交事件,有以下幾種方法:

1.將<input>標籤內按鈕型別從type="submit"修改為type="button"

2.表單內的<button>

未指定型別時,預設的型別為submit,可以顯式的修改為<button type="button">來阻止表單提交

3.利用preventDefault()方法:

<!DOCTYPE html>
<htmllang="en">
<head>
    <metacharset="UTF-8">
    <title>Document</title>
    <script>functionfunc(event){
            event.preventDefault();
        }
    
</script> </head> <body> <formaction=""> <inputtype="submit"value="button"onclick="func(event)" /> </form> </body> </html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

4..用onclick點選事件來return false
講一下表單提交按鈕onclick事件:
onclick="return true" 為預設的表單提交事件
onclick="return false"

為阻止表單提交事件
而一般用onclick來呼叫函式都是沒有返回值的,所以一般呼叫完成後為預設return true;所以才會看到,先處理回撥函式後再進行表單提交跳轉。

<!DOCTYPE html>
<htmllang="en">
<head>
    <metacharset="UTF-8">
    <title>Document</title>
    <script>functionfunc(){returnfalse;
        }
    </script>
</head>
<body>
    <formaction="">
        <inputtype="submit"value="button"onclick="return func()" /> 
        <!--注意是onclick內是return func();而不是簡單的呼叫func()函式-->
    </form>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

5.利用表單的onsubmit事件
注意:onsubmit事件的作用物件為<form>,所以把onsubmit事件加在提交按鈕身上是沒有效果的。
form物件的onsubmit事件類似onclick,都是先處理呼叫的函式,再進行表單是否跳轉布林值的判斷
onsubmit="return true" 為預設的表單提交事件
onsubmit="return false"為阻止表單提交事件

<!DOCTYPE html> 

<htmllang="en"> 

<head> 

    <metacharset="UTF-8"> 

    <title>Document</title> 

    <script>functionfunc(){returnfalse; 

        } 

    </script> 

</head> 

<body> 

    <formaction=""onsubmit="return func()"> 

        <inputtype="submit"value="button" />  

    </form> 

</body> 

</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17