#jquery #vue.js #vuejs2 #vuelidate #vue-validator
#jquery #vue.js #vuejs2 #vuelidate #vue-валидатор
Вопрос:
В моей форме сгенерированы динамические поля, все проверки, которые должны быть установлены, извлекаются из базы данных (т. Е. Независимо от того, является ли поле обязательным или необязательным, а числовое значение или строка сохраняются в базе данных), теперь, когда страница отображается, я хочу проверить свою форму, я пытаюсь написать свои собственные пользовательские методы, но он не может проверить форму, проблема в сообщении об ошибке пользовательского метода не отображается, и форма также отправляется без проверки.
<input v-model="field.user_value" :name="field.name" v-on:input="validateTextInput(field.field_validations,$event)" type="text" class="form-control input-md form-control"/>
methods: {
validateTextInput(validations,event)
{
if(validations.req=='required')
{
if(event.target.value=='')
{
alert('This field is required');
return false;
}
if(validations.allowed=='string')
{
}
}
Ответ №1:
Вы не используете правильную переменную для события, используйте $event вместо e.target.value
<input v-model="field.user_value" :name="field.name" v-on:input="validateTextInput(field.field_validations, $event)" type="text" class="form-control input-md form-control"/>
methods: {
validateTextInput(validations,event)
{
if(validations.req=='required')
{
if(event.target.value=='')
{
alert('This field is required');
return false;
}
if(validations.allowed=='string')
{
}
}
Комментарии:
1. Я получаю значение, но моя проблема в том, как я могу показать ошибки и предотвратить отправку формы или есть какой-либо лучший способ для этого типа проверки, я обновил свой код.
2. создайте переменную в data(), например: «formIsValid: false», и если в любом из этих полей что-то не так, установите для нее значение «this.formIsValid= true», а затем прослушайте событие отправки формы и, возможно, отключите функцию, взгляните на: vuejs.org/v2/cookbook/form-validation.html
3. Можно ли использовать библиотеку vuelidate для этого типа проверки
4. возможно, если у вас достаточно знаний.