簡體   English   中英

單擊按鈕時頁面會奇怪地刷新

[英]The page will strangely refresh when I click the button

這是我的代碼:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <title>中國工程院無線投票系統</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/login.css">
</head>
<body>
<div class="container" id="login">
    <div class="col-md-6 col-md-offset-3">
        <div class="page-header">
            <h1>中國工程院無線投票系統</h1>
        </div>
        <form>
            <div class="form-group">
                <label>用戶名</label>
                <div class="input-group">
                    <div class="input-group-addon"><i class="glyphicon glyphicon-user"></i></div>
                    <input type="text" v-model="account.username" class="form-control" placeholder="Username" required
                           autofocus>
                </div>
            </div>

            <div class="form-group">
                <label>密碼</label>
                <div class="input-group">
                    <div class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></div>
                    <input type="password" v-model="account.password" class="form-control" placeholder="Password"
                           required>
                </div>
            </div>

            <button v-on:click="validate" class="btn btn-lg btn-primary btn-block">登錄</button>
        </form>
    </div>
</div>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/axios@0.12.0/dist/axios.min.js"></script>
<script src="js/login.js"></script>
</body>
</html>

在 login.js 文件中:

var login = new Vue({
    el:"#login",
    data:{account:{}},
    methods:{
        validate:function () {

        },
        say: function (){

        }
    }
});

一開始,我認為它與“驗證”方法中的代碼有關。 但是,在我刪除了里面的所有代碼后,當我單擊不應該發生的按鈕時,頁面仍然會刷新。

您應該將type="button"添加到您的<button>

如果您沒有在<form>中指定<button>type ,則默認情況下它的行為類似於提交按鈕,它會刷新頁面。

文檔

<type="submit">按鈕將表單數據提交給服務器。 如果未指定屬性,或者屬性動態更改為空值或無效值,則這是默認值。

或者你可以使用這樣的Event 修飾符以 vuejs 的方式進行:

<button v-on:click.prevent="validate" class="btn btn-lg btn-primary btn-block">登錄</button>

prevent事件修飾符可防止默認行為。

就像在事件處理程序中使用event.preventDefault()

@submit.prevent添加到您的表單中。

<form @submit.prevent>
 ....
</form>

使用表單元素時,提交操作會刷新頁面,除非您指定return false; onsubmit屬性的末尾。 我相信你在這里遇到同樣的問題。

嘗試在 onclick 屬性的末尾(引號之前)放置一個分號,然后鍵入return false; 它應該可以解決您的問題。

在這里看到“最佳答案”

總之,我會將@ submit.prevent ='validate()'屬性添加到表單中,這樣它就不會像通常的提交一樣。

希望在使用帶有Vue.js的表單時清理一下

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM