vue+vue-validator 表单验证

1.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="app">
        <validator name="myForm">
            <form novalidate>
                Zip: <input type="text" v-validate:zip="['required']"><br />
                <div>
                    <span v-if="$myForm.zip.required">Zip code is required.</span>
                </div>
            </form>
        </validator>
    </div>
    <script src="https://unpkg.com/vue@1.0.26/dist/vue.min.js"></script>
    <script src="https://cdn.bootcss.com/vue-validator/2.1.3/vue-validator.js"></script>
    <script>
        new Vue({
            el:"#app"
        })
    </script>
</body>
</html>

2.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>radio button validation example</title>
    <script src="../../node_modules/vue/dist/vue.js"></script>
    <script src="../../dist/vue-validator.js"></script>
    <style>
      input.invalid { border-color: red; }
      .errors { color: red; }
    </style>
  </head>
  <body>
    <div id="app">
      <h1>Survey</h1>
      <validity-group field="fruits" v-model="validation" :validators="{
        required: { message: requiredErrorMsg }
      }">
        <legend>Which do you like fruit ?</legend>
        <input id="apple" type="radio" name="fruit" value="apple" @change="handleValidate" @focusin="handleValidate">
        <label for="apple">Apple</label>
        <input id="orange" type="radio" name="fruit" value="orange" @change="handleValidate" @focusin="handleValidate">
        <label for="orange">Orage</label>
        <input id="grape" type="radio" name="fruit" value="grage" @change="handleValidate" @focusin="handleValidate">
        <label for="grape">Grape</label>
        <input id="banana" type="radio" name="fruit" value="banana" @change="handleValidate" @focusin="handleValidate">
        <label for="banana">Banana</label>
        <ul class="errors">
          <li v-for="error in validation.result.errors">
            <p :class="error.field + '-' + error.validator">{{error.message}}</p>
          </li>
        </ul>
      </validity-group>
    </div>
    <script>
      new Vue({
        data: {
          validation: {
            result: {}
          }
        },
        computed: {
          requiredErrorMsg: function () {
            return 'Required fruit !!'
          }
        },
        methods: {
          handleValidate: function (e) {
            var $validity = e.target.$validity 
            $validity.validate()
          }
        }
      }).$mount('#app')
    </script>
  </body>
</html>

posted @ 2017-11-13 15:32  徐同保  阅读(3052)  评论(0编辑  收藏  举报