关于vue element,使用表单时,input不能输入的问题

关于vue element,使用表单时,input不能输入的问题

问题原因我估计有两类,一个是双向绑定不成功,还有一个就是change事件的时候,表单一直在调用自己的resetFields方法,但是我不知道该如何解决。

另外,这样的代码在另一个页面正常能运行,区别是这里是对话框,另一边是单页面。

代码如下

<template>

<el-dialog :title="freeCoupleForm.id ? '编辑随心组合分类' : '新建随心组合分类'" :visible.sync="freeCoupleDialogVisible" :before-close="dialogClose()">

<el-form ref="freeCoupleRef" :model="freeCoupleForm" :rules="freeCoupleRules" label-width="140px">

<el-row>

<el-col :span="24">

<div class="grid-content bg-purple">

<el-form-item label="随心组合分类名称:" prop="name">

<el-input placeholder="请输入随心组合分类名称" v-model="freeCoupleForm.name"></el-input>

</el-form-item>

<el-form-item label="随心组合分类描述:" prop="description">

<el-input placeholder="请输入随心组合分类描述" v-model="freeCoupleForm.description"></el-input>

</el-form-item>

</div>

</el-col>

</el-row>

</el-form>

<span slot="footer" class="dialog-footer">

<el-button @click="freeCoupleDialogVisible = false">取 消</el-button>

<el-button type="primary" @click="confirm">确 定</el-button>

</span>

</el-dialog>

</template>

<script>

export default {

data() {

return {

freeCoupleDialogVisible: true,

freeCoupleForm: {

name: '',

description: 'undefined',

seqNum: 30,

module: 'FREEDOM',

type: 'CHOOSE'

},

freeCoupleRules: {

name: [{ required: true, message: '请输入随心组合分类名称', trigger: 'blur' }],

description: [{ required: true, message: '请输入随心组合分类描述', trigger: 'blur' }]

// cover: [{ required: true, validator: validateCover, trigger: 'blur' }]

}

}

},

created() {},

methods: {

init(row) {

this.freeCoupleDialogVisible = true

},

// 对话框关闭回调

dialogClose() {

this.$refs.freeCoupleRef && this.$refs.freeCoupleRef.resetFields()

},

confirm() {

this.$emit('confirm', this.freeCoupleForm)

}

}

}

</script>


回答:

:before-close="dialogClose"


回答:

我粘贴代码试了一下,是你的before-close引起的,可能是只要弹窗失去焦点就会调用导致,到你聚焦输入框时弹窗输入焦点就执行dialogClose里的方法,
解决办法:你如果想把dialog封装成组件,不是那么容易的事情,你这么写是有很多问题的以下是正确的封装方法

父级:

使用组件

<DialogComponents :visible.sync="visible" />

子级:

<template>

<el-dialog :visible.sync="curVisible" @close="close"><el-dialog>

</tempalte>

<script>

export default{

data(){

return{

curVisible:false

}

}

props: ['visible'],

watch:{

visible(){

this.curVisible = this.visible;

}

},

methods:{

close(){

this.curVisible = false;

this.$emit("update:visible", false);

}

}

}

</script>


回答:

没看出啥问题

以上是 关于vue element,使用表单时,input不能输入的问题 的全部内容, 来源链接: utcz.com/p/936734.html

回到顶部