【发布时间】:2020-01-23 05:18:11
【问题描述】:
我正在用 Vue 和 Laravel 编写一个应用程序。我创建了一个名为 UsersCreate 的 Vue 组件。该组件从用户那里获取数据,并使用 axios 将其发送到 Laravel 控制器。我的问题是当我点击 showPassword [Button/Anchor] onSubmit 方法有效时,我该如何阻止它?
Laravel 6.x Vue 2.5.x
UsersCreate.vue
<template>
<div>
<h1>Create User</h1>
<div v-if="message" class="py-2 px-4 text-sm text-green-700 bg-green-300">{{ message }}</div>
<form @submit.prevent="onSubmit($event)">
<div>
<label for="user_name">Name</label>
<input type="text" id="user_name" v-model="user.name"/>
</div>
<div>
<label for="user_email">Email</label>
<input type="email" id="user_email" v-model="user.email">
</div>
<div>
<label for="user_password">Password</label>
<input v-bind:type="password_type" id="user_password" v-model="user.password">
<a type="button" @click="showPassword">{{ password_button_text }}</a>
</div>
<div>
<button type="submit" :disabled="saving">
{{ saving ? 'Creating...' : 'Create' }}
</button>
</div>
</form>
</div>
</template>
<script>
import users from "../../api/users";
export default {
name: "UsersCreate",
data() {
return {
password_type: 'password',
password_button_text: 'Show Password',
saving: false,
message: false,
user: {
name: '',
email: '',
password: '',
}
}
},
methods: {
showPassword() {
if (this.password_type === 'password') {
this.password_type = 'text';
this.password_button_text = 'Hide Password';
} else {
this.password_type = `password`;
this.password_button_text = `Show Password`;
}
},
onSubmit(event) {
this.saving = true;
this.message = false;
users.create(this.user)
.then((data) => {
console.log(data);
})
.catch((e) => {
this.message = e.response.data.message || 'Hard code: Error';
})
.then(() => this.saving = false)
}
}
}
</script>
<style scoped>
</style>
【问题讨论】:
-
您可以从标签中删除 type="button"。
-
感谢您的快速回答。当我点击“showPassword”时,我删除并仍在发布数据
标签: javascript laravel vue.js