Vue利用计算属性get和set拆分姓名

直接复制代码,改Vue链接就好。

都有注释,简单易懂

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/vue-2.6.9.min.js" type="text/javascript" charset="utf-8"></script>
	<body>
		<div class="demo">
			<p>姓名:<input type="text" v-model="fullName" /></p>
			<p>
				姓:<input type="text" v-model="firstName" />
				名:<input type="text" v-model="lastName" />
			</p>
		</div>
	</body>
	<script type="text/javascript">
		var demo = new Vue({
			el: ".demo",
			data: {
				firstName: '',
				lastName: '',
				fuxing: ['欧阳', '慕容', '司马']/* 复姓数组 */
			},
			computed: {
				fullName: {
					get: function() {
						return this.firstName + this.lastName/* 名加姓 */
					},
					set: function(newName) {

						if (newName == '') {
							 /* 如果不为空,就会出undefinde */
							newName = ''
						} else {
							/* 不是复姓*/
							var flag = 0
							var temp = newName.slice(0, 2)
							for (var i = 0; i < this.fuxing.length; i++) {
								if (temp == this.fuxing[i]) {
									/* 是复姓就执行 */
									flag = 1;
									break
								}
							}
							if (flag == 0) {
								/* 不是复姓*/
								this.firstName = newName[0]
								this.lastName = newName.slice(1)/* 不管名字几个字,都从第一个开始以后都是名字 */
							} else {
								/* 是复姓就执行 */
								this.firstName = temp
								this.lastName = newName.slice(2)/* 不管名字几个字,都从第二个开始以后都是名字 */
							}
						}

					}
				}
			}
		})
	</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

裴嘉靖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值