完整的表单的例子

下面这个例子用到了表单中的各项元素,单行、多行输入框、单选按钮、复选框和下拉列表,但不包含文件上传的功能,文件上传在下节单独讲。

<template>
  <div>
    <h1>表单的例子</h1>
    <form>
      <div>姓名:</div>
      <div><input type="text" autofocus="autofocus" v-model="name" /></div>

      <div>性别:</div>
      <div>
        <input type="radio" id="gender-male" name="gender" value="男" v-model="gender" /><label for="gender-male">男</label>
        <input type="radio" id="gender-female" name="gender" value="女" v-model="gender" /><label for="gender-female">女</label>
      </div>

      <div>来自:</div>
      <div>
        <select v-model="province">
          <option value="北京">北京</option>
          <option value="上海">上海</option>
          <option value="广州">广州</option>
          <option value="深圳">深圳</option>
        </select>
      </div>

      <div>简介:</div>
      <div><textarea v-model="intro"></textarea></div>

      <div>爱好:</div>
      <div>
        <input type="checkbox" value="吃" id="chi" v-model="hobbies" /><label for="chi">吃</label>
        <input type="checkbox" value="喝" id="he" v-model="hobbies" /><label for="he">喝</label>
        <input type="checkbox" value="玩" id="wan" v-model="hobbies" /><label for="wan">玩</label>
        <input type="checkbox" value="乐" id="le" v-model="hobbies" /><label for="le">乐</label>
      </div>

      <div></div>
      <div><input type="checkbox" id="iagreewithite" v-model="agree"><label for="iagreewithite">我同意注册协议……</label></div>

      <div></div>
      <div><input type="submit" value="submit button" /> <button v-on:click="submitForm">提交</button></div>
    </form>

    <div class="display">
      <div>姓名:{{name}}</div>
      <div>性别:{{gender}}</div>
      <div>简介:{{intro}}</div>
      <div>爱好:{{hobbies}}</div>
      <div>是否同意注册协议:{{agree}}</div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'Form',
  data() {
    return {
      name: null,
      gender: null,
      intro: null,
      province: null,
      hobbies: [],
      agree: false
    }
  },
  methods:{
    submitForm: function(){
      console.log("submitForm")
    }
  }
}
</script>

<style scoped>
form {display: grid; grid-template-columns: 50px auto; grid-row-gap:20px; text-align: left; width: 600px; }
input[type=text] {width: 500px;}
textarea{width: 500px; height: 50px;}
</style>

results matching ""

    No results matching ""