Javascript ver提交后,如果输入了任何输入,无论是否满足我的自定义验证,字段都会被标记为绿色复选标记。然后datepicker没有显示任何错误消息,我可能是错的,但我认为aria required“仅”用于可访问性,即屏幕阅读器等。当然,但是引用文本的重要部分是,验
Javascript ver提交后,如果输入了任何输入,无论是否满足我的自定义验证,字段都会被标记为绿色复选标记。然后datepicker没有显示任何错误消息,我可能是错的,但我认为aria required“仅”用于可访问性,即屏幕阅读器等。当然,但是引用文本的重要部分是,验,javascript,twitter-bootstrap,vue.js,bootstrap-4,vue-cli,Javascript,Twitter Bootstrap,Vue.js,Bootstrap 4,Vue Cli,ver提交后,如果输入了任何输入,无论是否满足我的自定义验证,字段都会被标记为绿色复选标记。然后datepicker没有显示任何错误消息,我可能是错的,但我认为aria required“仅”用于可访问性,即屏幕阅读器等。当然,但是引用文本的重要部分是,验证需要由您的应用程序处理好的,到目前为止,您的答案是我遇到的最好的答案,我只需要花一点时间来探索其他答案,但是您是否想过为日期选择器显示一些错误消息?是否唯一的选项只是检查是否保存了值,然后显示反馈?@WCS424检查我上面的编辑和更新的工作沙
ver提交后,如果输入了任何输入,无论是否满足我的自定义验证,字段都会被标记为绿色复选标记。然后datepicker没有显示任何错误消息,我可能是错的,但我认为aria required“仅”用于可访问性,即屏幕阅读器等。当然,但是引用文本的重要部分是,
验证需要由您的应用程序处理
好的,到目前为止,您的答案是我遇到的最好的答案,我只需要花一点时间来探索其他答案,但是您是否想过为日期选择器显示一些错误消息?是否唯一的选项只是检查是否保存了值,然后显示反馈?@WCS424检查我上面的编辑和更新的工作沙盒。这正是我一直在寻找的。非常感谢。理想情况下,我不想要浏览器弹出窗口,但我可以处理它们。
<b-form @submit.prevent="addReview" name="review-form" novalidate>
<div class="name">
<label class="sr-only" for="form-input-name">Name</label>
<b-input id="form-input-name" class="form-inputs mb-2 mr-sm-2 mb-sm-0" v-model="name" placeholder="Name" required :state="isStateValid(this.name)"></b-input>
<b-form-invalid-feedback id="form-input-name">
You must enter a name
</b-form-invalid-feedback>
</div>
<div class="date">
<label class="sr-only" for="example-datepicker">Choose a date</label>
<b-form-datepicker id="datepicker" v-model="dateVisited" class="mb-2" required placeholder="Date Visited" :state="isStateValid(this.dateVisited)"></b-form-datepicker>
<b-form-invalid-feedback id="datepicker">
You must enter a valid date
</b-form-invalid-feedback>
</div>
<div class="service">
<label class="sr-only" for="form-input-service">Service Provided</label>
<b-input id="form-input-service" class="form-inputs mb-2" placeholder="Service Provided" v-model="service" required :state="isStateValid(this.service)"></b-input>
<b-form-invalid-feedback id="form-input-service">
You must enter the service provided
</b-form-invalid-feedback>
</div>
<div class="email">
<label class="sr-only" for="inline-form-input-username">Email</label>
<b-input id="inline-form-input-username" class="form-control mb-2 mr-sm-2 mb-sm-0" placeholder="Email" v-model="email" required :state="emailStateValidation"></b-input>
<b-form-invalid-feedback id="inline-form-input-username">
You must enter the part of your email that comes before the '@' symbol
</b-form-invalid-feedback>
</div>
<div class="domain">
<label class="sr-only" for="inline-form-input-domain">Domain</label>
<b-input-group prepend="@" class="mb-2 mr-sm-2 mb-sm-0">
<b-input id="inline-form-input-domain" placeholder="Domain ex: gmail.com" v-model="domain" required :state="domainStateValidation"></b-input>
<b-form-invalid-feedback id="inline-form-input-domain">
You must enter the part of your email that comes after the '@' symbol
</b-form-invalid-feedback>
</b-input-group>
</div>
<div class="description">
<label class="sr-only" for="textarea-rows">Describe Your Experience</label>
<b-form-textarea class="mb-3 mr-sm-2 mb-sm-0" id="textarea-rows" placeholder="Describe Your Experience" rows="4" required v-model="description" :state="isStateValid(this.description)"></b-form-textarea>
<b-form-invalid-feedback id="textarea-rows">
You must enter a description of your experience
</b-form-invalid-feedback>
</div>
<b-button type="submit">Save</b-button>
</b-form>
computed: {
emailStateValidation() {
if (this.email) {
return this.emailIsValid() ? true : false;
}
return null;
},
domainStateValidation() {
if (this.domain) {
return this.domainIsValid() ? true : false;
}
return null;
},
},
methods: {
emailIsValid() {
let regEx = /^(?!.*@)((^[^\.])[a-z0-9\.!#$%&'*+\-\/=?^_`{|}~"]*)*([^\.]$)/;
return regEx.test(this.email);
},
domainIsValid() {
let regEx = /((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return regEx.test(this.domain);
},
isStateValid(variable) {
if (variable) {
return variable.length > 0 ? true : false;
}
return null;
},
addReview() {
let mainForm = document.getElementsByName("review-form")[0];
mainForm.classList.add("was-validated");
...
if(variable) { // "" evaluates to false
// ...
}