HTML、vuejs例子1

本程序模拟学生地址信息采集,当填写省份、城市、街道时自动将数据转换为地址。

提示:

  • v-bind表示单向数据绑定(缩写为:)
  • v-model表示双向数据绑定
  • v-on表示事件(缩写为@)
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Student Address</title>

  <!-- 样式 -->
  <style type="text/css">
    .fields {
      width: 550px;
      height: 250px;
      background-color: #adfada;
      padding: 50px;
      margin: 0 auto;
    }
  
    .fields > input {
      border-radius: 6px;
      height: 25px;
      border: 1px dashed #44a1ff;
      width: 16em;
    }
  
    .fields label {
      user-select: none;
      -moz-user-select: none;
      -webkit-user-select: none;
    }
  
    .fields > input ~ input {
      margin-top: 5px;
  
    }
  
    .buttons input {
      margin: 10px 5px;
      width: 150px;
      height: 35px;
      background-color: #44a1ff;
      color: #fff;
      padding: 0 20px;
      border: none;
      border-radius: 6px;
      cursor: pointer;
    }
  </style>

  <!-- 导入vue.js -->
  <script src="./js/vue.js"></script>
</head>
<body>
  <div id="app">
    <!-- 表单 -->
    <form @submit.prevent>
      <fieldset :class="stuClass">
        <legend style="text-align: center;">学生地址信息采集</legend>

        <label for="name">姓名:</label>
        <input v-model.trim="name" id="name">
        <hr size="2px" color="#44a1ff" />
        <label for="province">省份:</label>
        <input v-model.trim="province" id="province" @keyup="getAddress"><br />
        <label for="city">城市:</label>
        <input v-model.trim="city" id="city" @keyup="getAddress"><br />
        <label for="street">县、区或街道:</label>
        <input v-model.trim="street" id="street" @keyup="getAddress"><br />
        <label for="address">地址:</label>
        <input v-model.trim="address" id="address" style="width: 80%;">

        <!-- 按钮 -->
        <div class="buttons">
          <input type="submit" value="提交">
          <input type="reset" value="重置">
        </div>
      </fieldset>
    </form>
  </div>
  
  <script>
    // 创建Vue实例
    const vm = new Vue({
      el: '#app', //根元素(绑定到 DOM(文档对象模型) 模板)
      data: {     //状态(存储响应式数据)
        stuClass: 'fields', //样式
        name: '',           //姓名
        province: '',       //省份
        city: '',           //城市
        street: '',         //街道
        address: ''         //地址
      },
      methods: {  //存储方法
        // 获取地址
        getAddress() {
          let [province, city, street] = [this.province, this.city, this.street]  //通过解构赋值给局部变量
          this.address = `${province} ${city} ${street}` //地址赋值
          // this.address = `${this.province} ${this.city} ${this.street}`        //直接赋值
        }
      }
    })
  </script>
</body>
</html>

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值