<template> <view> <form @submit.prevent="submitForm"> <view> <label>类型:</label> <select v-model="formData.type"> <option value="income">收入</option> <option value="outcome">支出</option> </select> </view> <view> <label>金额:</label> <input type="number" v-model="formData.amount" /> </view> <view> <label>日期:</label> <input type="date" v-model="formData.date" /> </view> <button type="submit">记一笔</button> </form> </view> </template> <script setup> import { ref } from 'vue'; const formData = ref({ type: '', amount: '', date: new Date() }); function submitForm() { // 提交表单 console.log(formData.value); } </script>将代码完善,添加样式
时间: 2023-11-16 17:53:56 浏览: 145
解决Vue @submit 提交后不刷新页面问题
<>
<div class="form-wrapper">
<form @submit.prevent="submitForm">
<div class="form-item">
<label>类型:</label>
<select v-model="formData.type">
<option value="income">收入</option>
<option value="outcome">支出</option>
</select>
</div>
<div class="form-item">
<label>金额:</label>
<input type="number" v-model="formData.amount" />
</div>
<div class="form-item">
<label>日期:</label>
<input type="date" v-model="formData.date" />
</div>
<button type="submit">记一笔</button>
</form>
</div>
</template>
<style scoped>
.form-wrapper {
max-width: 400px;
margin: 0 auto;
}
.form-item {
margin-bottom: 20px;
}
label {
display: inline-block;
width: 60px;
text-align: right;
margin-right: 10px;
}
</style>
<script setup>
import { ref } from 'vue';
const formData = ref({
type: '',
amount: '',
date: new Date(),
});
function submitForm() {
// 提交表单
console.log(formData.value);
}
</script>
在上面的代码中,我添加了一个 "form-wrapper" 的 div 包裹整个表单,用于设置表单最大宽度和居中对齐。我还添加了一个 "form-item" 的 div 包裹每个表单项,用于设置表单项之间的间距。最后,我添加了一些基本的样式用于对齐和布局。
阅读全文