在范围内使用带有自定义 v-select 标记的 validateAll()
Using validateAll() with custom v-select tag in scope
我有一个场景,我已经确定了一个表单的范围,以便我可以使用 Vee-Validate 使用下面的方法验证它。
validateTRForm: function (scope) {
this.$validator.validateAll(scope).then((result) => {
if (result) { }
Vue Select Component "scope" 属性 始终为空,即使我将它添加到表单中也是如此。但是,它在范围之外工作正常。
我的HTML && js文件有点像
var selectComponent = Vue.component('v-select', VueSelect.VueSelect)
Vue.use(VeeValidate);
new Vue({
el: '#app',
data: {
selected:'',
},
methods: {
validateTRForm: function (scope) {
this.$validator.validateAll(scope).then((result) => {
if (result) {
//do something
}
});
},
},
components: {
component: selectComponent
}
})
<div id="app">
<form data-vv-scope="Test">
<input name="textTest" v-validate="'required|email'" />
<span v-show="errors.has('Test.textTest')" class="help is-danger">{{ errors.first('Test.textTest') }}</span>
<v-select v-model="selected" data-vv-name="testVselect" v-validate="'required'" :options="[{label: 'Test1', value: '1'}, {label: 'Test2', value: '2'}, {label: 'Test3', value: '3'}]"></v-select>
<span v-show="errors.has('Test.testVselect')" class="help is-danger">{{ errors.first('Test.testVselect') }}</span>
<button v-on:click.prevent="validateTRForm('Test')">Validate Elements</button>
</form>
</div>
我通过向组件添加 data-vv-scope="Test"
修复了它。
我有一个场景,我已经确定了一个表单的范围,以便我可以使用 Vee-Validate 使用下面的方法验证它。
validateTRForm: function (scope) {
this.$validator.validateAll(scope).then((result) => {
if (result) { }
Vue Select Component "scope" 属性 始终为空,即使我将它添加到表单中也是如此。但是,它在范围之外工作正常。
我的HTML && js文件有点像
var selectComponent = Vue.component('v-select', VueSelect.VueSelect)
Vue.use(VeeValidate);
new Vue({
el: '#app',
data: {
selected:'',
},
methods: {
validateTRForm: function (scope) {
this.$validator.validateAll(scope).then((result) => {
if (result) {
//do something
}
});
},
},
components: {
component: selectComponent
}
})
<div id="app">
<form data-vv-scope="Test">
<input name="textTest" v-validate="'required|email'" />
<span v-show="errors.has('Test.textTest')" class="help is-danger">{{ errors.first('Test.textTest') }}</span>
<v-select v-model="selected" data-vv-name="testVselect" v-validate="'required'" :options="[{label: 'Test1', value: '1'}, {label: 'Test2', value: '2'}, {label: 'Test3', value: '3'}]"></v-select>
<span v-show="errors.has('Test.testVselect')" class="help is-danger">{{ errors.first('Test.testVselect') }}</span>
<button v-on:click.prevent="validateTRForm('Test')">Validate Elements</button>
</form>
</div>
我通过向组件添加 data-vv-scope="Test"
修复了它。