반응형
최소/최대 검증 - Vuetify
5천에서 5만 사이의 숫자만 입력할 수 있는지 확인해야 합니다.현재 다음 코드를 사용하고 있습니다.
rules: {
required: value => !!value || 'Required.',
loanMin: value => value <= 5000 || 'Loan should be above £5000',
loanMax: value => value >= 50000 || 'Max should not be above £50,000',
}
필드에 적용되는 규칙은 다음과 같습니다.
<v-text-field
height="5"
:rules="[rules.loanMin, rules.loanMaxMax, rules.required]"
editable
v-model="sliderLoan"
@change="principleLogger(sliderLoan)"
persistent-hint
outline
label="Loan Amount"
type="number"
></v-text-field>
하나의 필드에 여러 규칙을 적용하는 방법
템플릿 내
<v-text-field
label="Example"
v-model="example"
:rules="exampleRules"
></v-text-field>
데이터 내
example: "",
exampleRules: [
v => !!v || "This field is required",
v => ( v && v >= 5000 ) || "Loan should be above £5000",
v => ( v && v <= 50000 ) || "Max should not be above £50,000",
],
참고 자료: https://vuetifyjs.com/en/components/forms/, playground에서 샘플 코드를 확인합니다.
보너스: 이 질문의 일부가 아닌 관련 질문입니다.조금 변경 후 최소/최대 길이 검증에도 동일하게 사용할 수 있습니다.
example: "",
exampleRules: [
v => !!v || "This field is required",
v => ( v && v.length >= 10 ) || "This field must have atleast 10 characters",
v => ( v && v.length <= 100 ) || "This field exceeds maximum allowed characters",
],
다른 해결책을 찾았어요
<v-text-field
v-model="myNumber"
:min="minValue"
:max="maxValue"
hide-details
single-line
type="number"
/>
여기서 minValue 및 maxValue는 데이터에 정의되어 있습니다.
Vue:
<v-text-field
height="5"
:rules="rules"
editable
v-model="sliderLoan"
@change="principleLogger(sliderLoan)"
persistent-hint
outline
label="Loan Amount"
type="number"
/>
스크립트:
rules: [
v => !!v || 'Required',
v => v >= 5000 || 'Loan should be above £5000',
v => v <= 50000 || 'Max should not be above £50,000',
],
몇 가지 실수가 있습니다.당신은 가지고 있다rules.loanMaxMax,
어느 쪽인가 하면rules.loanMax,
또한 부호로 규칙을 바꿀 필요가 있습니다.
rules: {
required: value => !!value || 'Required.',
loanMin: value => value >= 5000 || 'Loan should be above £5000',
loanMax: value => value <= 50000 || 'Max should not be above £50,000',
}
코드펜 참조
사용자 지정 텍스트 필드 규칙이 필요하며 사용자 지정 최소값과 최대값이 입력되었습니다.
<v-text-field
height="5"
:rules="[rules.loanMin(sliderLoan,5000,'USD'), rules.loanMaxMax(sliderLoan,50000,'USD')]"
editable
v-model="sliderLoan"
@change="principleLogger(sliderLoan)"
persistent-hint
outline
label="Loan Amount"
type="number"
></v-text-field>
rules: {
loanMin(value,min,currency) {
return (value || "") >= min || `Loan must be at least ${min} {currency}`;
},
loanMaxMax(value,max,currency) {
return (value || "") <= max || `Loan may not be greater than ${max} ${currency}.`;
}
}
저는 이 SO페이지에서 이 질문에 답했습니다.
v-model 변수를 규칙에 두 번째 매개 변수로 전달하기만 하면 됩니다.
<template>
<v-input :rules=[rules.min(20, field1), rules.max(200, field1)] v-model="field1" />
</template>
<script>
data() {
rules: {
min(min, v) {
return (v || '').length >= min || `Value must be at least ${min}`;
},
max(max, v) {
return (v || '').length <= max || `Value may not be greater than ${max}.`;
}
}
}
</script>
언급URL : https://stackoverflow.com/questions/56835707/min-max-validation-vuetify
반응형
'IT이야기' 카테고리의 다른 글
Java에서 지정된 문자열이 유효한 JSON인지 확인하는 방법 (0) | 2022.06.12 |
---|---|
동시에 2개의 다른 요소에 대한 전이 페이드인 및 페이드아웃 (0) | 2022.06.12 |
할당 후 입력값 변경 (0) | 2022.06.12 |
System.currentTimeMillis() vs. 새로운 날짜() vs.Calendar.getInstance().getTime() (0) | 2022.06.12 |
Java에서 2개의 절대 경로(URL)에서 상대 경로를 구축하려면 어떻게 해야 합니까? (0) | 2022.06.12 |