Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
35
rated 0 times [  36] [ 1]  / answers: 1 / hits: 5148  / 5 Years ago, tue, december 10, 2019, 12:00:00

I try to create a date range with controls in a compoment



Vue.component('FraisHebergement', {
template: '<div class=q-pt-xs>
<div class=q-pt-xs row>
<template>
<q-input filled v-model=model.date :rules=ConfirmDateRange label=Date début class=td25pc q-pr-xs ref=dtedeb>
<template v-slot:append>
<q-icon name=event class=cursor-pointer>
<q-popup-proxy ref=qDateProxy transition-show=scale transition-hide=scale>
<q-date v-model=model.date mask=DD/MM/YYYY @input=() => $refs.qDateProxy.hide() :locale=myLocale/>
</q-popup-proxy>
</q-icon>
</template>
</q-input >
</template ><template>
<q-input filled v-model=model.dateFin :rules=ConfirmDateRange label=Date Fin class=td25pc ref=dtefin>
<template v-slot:append>
<q-icon name=event class=cursor-pointer>
<q-popup-proxy ref=qDateProxyf transition-show=scale transition-hide=scale>
<q-date v-model=model.dateFin mask=DD/MM/YYYY @input=() => $refs.qDateProxyf.hide() :locale=myLocale/>
</q-popup-proxy>
</q-icon>
</template>
</q-input >
</template>
<q-input input-class=text-right filled ></q-input ></div>
<q-btn class=q-mt-sm label=Reset Validation @click=reset color=primary/><div class=row q-pt-xs>

</div></div>',
computed: {
ConfirmDateRange() {
return [
(v) => !!v || Saisissez quelque chose :-),
(v) => regex.test(v) || Format de date à utiliser: JJ/MM/AAAA,
(v) => this.model.dateFin > this.model.date || Date incohérente
]
}
},
data: function () {
return {
model: {
date: Quasar.utils.date.formatDate(Date.now(), 'DD/MM/YYYY'), dateFin: ''
},
myLocale: {
days: 'Dimanche_Lundi_Mardi_Mercredi_Jeudi_Vendredi_Samedi'.split('_'),
daysShort: 'Dim_Lun_Mar_Mer_Jeu_Ven_Sam'.split('_'),
months: 'Janvier_Fevrier_Mars_Avril_Mai_Juin_Juillet_Aout_Septembre_Octobre_Novembre_Decembre'.split('_'),
monthsShort: 'Janv_Fevr_Mars_Avr_Mai_Juin_Juil_Aout_Sept_Oct_Nov_Dec'.split('_'),
firstDayOfWeek: 1
},
natures: [],
}
},
methods: {
reset() {
this.$refs.dtedeb.resetValidation(); this.$refs.dtefin.resetValidation()
}
}
});


All controls are ok, but I want use resetValidation function of q-input to reset errors on 2 dates and after apply rules. Cause I put startdate bigger than enddate : error appear on startdate. But If I change enddate, my old error stay on startdate.
I put a button to reset... but I would like an automatical system
Thanks for your help


More From » vue.js

 Answers
5

Thanks, I didn't understand watch clearly. I just begin with Vue.
I find another and simplier way. Use the rule.
resetValidation is a function return void then I just call it in first like that



 ConfirmDateRange() {
return [
(v) => (this.$refs.dtedeb.resetValidation()|| this.$refs.dtefin.resetValidation() || !!v) || Saisissez quelque chose :-),
(v) => regex.test(v) || Format de date à utiliser: JJ/MM/AAAA,
(v) => this.model.dateFin > this.model.date || Date incohérente
]
}


It's ok now
Hope that can help others :-)


[#5376] Friday, December 6, 2019, 5 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
taylert

Total Points: 627
Total Questions: 91
Total Answers: 108

Location: Mayotte
Member since Mon, Sep 12, 2022
2 Years ago
taylert questions
;