學習完vue指令 作的一個學生信息錄入系統

一.demo實現原理javascript

 輸入完我的信息後  點擊建立用戶  數據就會顯示在下面的表格中 用到了vue中的數據雙向綁定 v-model v-for 還要js正則 數組的unshift splice 等方法 效果以下圖css

二 完整代碼以下   需引入一下vue.jshtml

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="vue/vue.js"></script>
		<style>
			/* 簡單寫了一下css樣式 */
			#app{width:600px;margin:50px auto;}
			fieldset{border:1px solid orange;width:600px;margin-bottom:30px;}
			input{width:200px;height:20px;margin-bottom:20px;}
			table{width:600px;border:1px solid orange;}
			thead{background-color:orangered;}
		</style>
		
	</head>
	<body>
		<div id="app">
			<!-- 第一部分 -->
			<fieldset id="">
				<legend>學院學生信息錄入系統</legend>
				<div>
					<span>姓名</span>
					<!-- v-model是爲了實現數據雙向綁定 -->
					<input type="text" placeholder="請輸入姓名" v-model="newuser.name">
				</div>
				<div>
					<span>年齡</span>
					<input type="text" placeholder="請輸入年齡" v-model="newuser.age">
				</div>
				<div>
					<span>性別</span>
					<select name="" id="" style="margin:0px 0px 20px 0px;" v-model="newuser.sex">
						<option value ="男">男</option>
						<option value ="女">女</option>
					</select>
				</div>
				<div>
					<span>手機</span>
					<input type="text" placeholder="請輸入手機" v-model="newuser.tel">
				</div>
				<button @click="add()">建立新用戶</button>
			</fieldset>
			<!-- 第二部分 -->
			<table>
				<thead>
					<tr>
						<td>姓名</td>
						<td>性別</td>
						<td>年齡</td>
						<td>手機</td>
						<td>刪除</td>
					</tr>
				</thead>
				<tbody>
					<!-- v-for 遍歷數組 -->
					<tr v-for="(p,index) in user">
						<td>{{p.name}}</td>
						<td>{{p.sex}}</td>
						<td>{{p.age}}</td>
						<td>{{p.tel}}</td>
						<td><button @click="del(index)">刪除</button></td>
					</tr>
				</tbody>
			</table>
		</div>
		<script type="text/javascript">
			new Vue({
				el:'#app',
				data:{
					//本身模擬的一個數據
					user:[{name:'張三',sex:'男',age:'20',tel:'1832838'},{name:'李四',sex:'女',age:'22',tel:'15988'}],
					//頁面上的數據更新在這個對象裏面  由於加了v-model 
					newuser:{name:'',sex:'男',age:'',tel:''}
				},
				methods:{
					add(){
						// 這是一些簡單的判斷
						if(this.newuser.name===''){
							alert('名字不能爲空');
							//還原一下newuser對象 以便於下一次輸入 如下都是
							this.newuser={name:'',sex:'男',age:'',tel:''};
							return;
						}
						if(this.newuser.age<='0'){
							alert('年齡要大於0');
							this.newuser={name:'',sex:'男',age:'',tel:''};
							return;
						}
						//正則簡單驗證下 要輸入正確的手機號
						if(!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.newuser.tel))){
							alert('請輸入正確的手機號');
							this.newuser={name:'',sex:'男',age:'',tel:''};
							return;
						}
						// 將newuser放進數組的頭部 放進去v-for好遍歷出來
						this.user.unshift(this.newuser);
						//添加完了之後 要還原一下newuser對象 以便於下一次輸入
						this.newuser={name:'',sex:'男',age:'',tel:''};
					},
					del(index){
						// splice刪除點擊的那一條數據  index是v-for遍歷出來的索引 
						this.user.splice(index,1);
						
					}
				}
			})
		</script>
	</body>
</html>
相關文章
相關標籤/搜索