欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue edittext

Vue的EditText組件是一種常用的表單輸入組件,它允許用戶編輯文本框中的內(nèi)容,同時(shí)還能對(duì)文本內(nèi)容進(jìn)行校驗(yàn)、限制等操作,方便實(shí)現(xiàn)表單數(shù)據(jù)的錄入和提交功能。

// 定義一個(gè)簡(jiǎn)單的EditText組件
Vue.component('edit-text', {
template: '<input v-bind="$attrs" v-model="value" @input="onInput" @blur="onBlur">',
props: {
value: String, // 綁定值
placeholder: String, // 占位文本
maxLength: Number, // 最大長(zhǎng)度
required: Boolean, // 是否必填
pattern: String, // 正則表達(dá)式校驗(yàn)規(guī)則
errorMsg: String // 錯(cuò)誤提示信息
},
methods: {
onInput(e) {
const value = e.target.value
// 進(jìn)行輸入限制操作,如限制最大長(zhǎng)度
if (this.maxLength && value.length >this.maxLength) {
this.value = value.slice(0, this.maxLength)
}
this.$emit('input', this.value)
},
onBlur() {
let errorMsg = ''
// 進(jìn)行校驗(yàn)操作,如必填校驗(yàn)、正則表達(dá)式校驗(yàn)等
if (this.required && !this.value) {
errorMsg = '必填項(xiàng)不能為空'
} else if (this.pattern && !new RegExp(this.pattern).test(this.value)) {
errorMsg = this.errorMsg || '輸入格式不正確'
}
this.$emit('blur', errorMsg)
}
}
})
// 使用EditText組件
new Vue({
el: '#app',
data: {
name: '',
age: ''
},
methods: {
onSubmit() {
// 判斷表單數(shù)據(jù)是否合法
const errMsg1 = this.$refs.nameEditText.$emit('blur')
const errMsg2 = this.$refs.ageEditText.$emit('blur')
if (errMsg1 || errMsg2) {
alert(errMsg1 || errMsg2)
return
}
// 提交表單數(shù)據(jù)
console.log('姓名:' + this.name + ',年齡:' + this.age)
}
}
})

以上代碼中,我們通過Vue.component()方法定義了一個(gè)EditText組件,定義了多個(gè)props屬性來同時(shí)接收父組件給定的各種屬性值,包括綁定值、占位文本、最大長(zhǎng)度、是否必填、正則表達(dá)式校驗(yàn)規(guī)則、錯(cuò)誤提示信息等。在組件內(nèi)部,通過v-bind指令將這些屬性綁定到文本框中,同時(shí)在onInput和onBlur方法中處理輸入限制和校驗(yàn)操作,如果校驗(yàn)不合法則通過$emit方法向父組件拋出錯(cuò)誤信息。在父組件中,我們通過ref屬性和$refs對(duì)象獲取到EditText組件的實(shí)例對(duì)象,通過調(diào)用$emit('blur')方法觸發(fā)組件校驗(yàn)邏輯并獲取校驗(yàn)結(jié)果,最終拿到表單數(shù)據(jù)后進(jìn)行提交即可。