简体   繁体   English

vue.js 表单验证和 ajax 提交

[英]vue.js form validation and ajax submit

I'm trying to use vue.js to do form validation and when the element is valid to submit it via ajax.我正在尝试使用vue.js进行表单验证,并在元素有效时通过 ajax 提交它。 But I can't get past the validation part.但我无法通过验证部分。

My html:我的html:

<div id='form' 'v-on'="change:updateForm">
<form>
    <select id="selects" name="selected_id" v-model='form.selected_id | selectValidator'>
        <option value="">Please choose one
            <option value='1'>Select 1</option>
            <option value='2'>Select 2</option>
    </select>
</form>
<br>
<div v-show="!validation.selected_id">Select cannot be blank</div>
<div v-show="validation.selected_id">{{form.selected_id}}</div>
<div v-show="validation.selected_id">{{validation.selected_id}}</div>

My javascript:我的JavaScript:

var app = new Vue({
el: '#form',
filters: {
    selectValidator: function (val) {
        this.validation.selected_id = !! val
        return val
    }
},
data: {
    form: {
        selected_id: ''
    },
    validation: {
        selected_id: false
    }
},
methods: {
    updateForm: function (e) {
        console.log(this.validation.selected_id)
        if (this.validation.selected_id) {
            console.log("make ajax call")
        }
    }
}

}) })

When looking into the console I see this.validation.selected_id as false instead of what it really is when it's printed out: true在查看控制台时,我看到this.validation.selected_id为 false 而不是打印出来时的真实情况: true

Here's a jsfiddle for testing , but it doesn't show the console log.这是一个用于测试的 jsfiddle ,但它不显示控制台日志。

The first line has single quotes around 'v-on' when there shouldn't be any:当不应该有任何时,第一行在 'v-on' 周围有单引号:

<div id='form' v-on="change:updateForm">

Here's a JSFiddle with the working version这是一个带有工作版本的 JSFiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM