用户注册表单 - 完善功能,支持查看已选职位
<!DOCTYPE html>
<html>
<head>
<title>用户注册表单</title>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<h1>用户注册表单</h1>
<pre><code><label for="username">用户名:</label>
<input type="text" id="username" v-model="form.username"><br><br>
<label for="intro">个人简介:</label>
<textarea id="intro" v-model="form.intro"></textarea><br><br>
<label>性别:</label>
<input type="radio" name="sex" value="男" v-model="form.sex">男
<input type="radio" name="sex" value="女" v-model="form.sex">女<br><br>
<label>爱好:</label>
<input type="checkbox" name="hobby" value="HTML" v-model="form.hobby">HTML
<input type="checkbox" name="hobby" value="CSS" v-model="form.hobby">CSS
<input type="checkbox" name="hobby" value="Vue" v-model="form.hobby">Vue[HTML]<br><br>
<label>对爱好进行快捷操作:</label>
<button @click="selectAll()">全选</button>
<button @click="unselectAll()">全不选</button>
<button @click="reverseSelect()">反选</button><br><br>
<label for="location">所在地:</label>
<select id="location" v-model="form.location">
<option value="">请选择</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="广州">广州</option>
<option value="深圳">深圳</option>
</select><br><br>
<label>选择你擅长的技术:</label>
<select v-model="form.technology">
<option value="">请选择</option>
<option value="Java">Java</option>
<option value="前端Vue">前端Vue</option>
<option value="PHP">PHP</option>
</select><br><br>
<label>可选职位:</label>
<select v-model="form.position" multiple>
<option value="Java程序员">Java程序员</option>
<option value="软件工程师">软件工程师</option>
<option value="前端工程师">前端工程师</option>
</select><br><br>
<button @click="addSelectedPosition()">已选职位</button><br><br>
<!-- 新增已选职位展示 -->
<div v-if="form.selectedPosition.length > 0">
已选职位:
<ul>
<li v-for="position in form.selectedPosition">{{ position }}</li>
</ul>
</div>
<button @click="submitForm()">提交</button>
<button @click="resetForm()">取消</button>
</code></pre>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
form: {
username: '',
intro: '',
sex: '',
hobby: [],
location: '',
technology: '',
position: [],
selectedPosition: [] // 新增已选职位
}
},
methods: {
selectAll: function() {
this.form.hobby = ['HTML', 'CSS', 'Vue[HTML]'];
},
unselectAll: function() {
this.form.hobby = [];
},
reverseSelect: function() {
var selectedHobbies = this.form.hobby;
if(selectedHobbies.length == 3) {
this.form.hobby = [];
} else {
this.form.hobby = ['HTML', 'CSS', 'Vue[HTML]'].filter(function(value) {
return !selectedHobbies.includes(value);
});
}
},
submitForm: function() {
alert(JSON.stringify(this.form, null, 2));
},
resetForm: function() {
this.form.username = '';
this.form.intro = '';
this.form.sex = '';
this.form.hobby = [];
this.form.location = '';
this.form.technology = '';
this.form.position = [];
this.form.selectedPosition = []; // 重置已选职位
},
addSelectedPosition: function() {
this.form.selectedPosition = this.form.position;
}
}
})
</script>
</body>
</html>
原文地址: https://www.cveoy.top/t/topic/lUDc 著作权归作者所有。请勿转载和采集!