this.options在chrome浏览器提示undefined的解决办法

本文介绍了一段用于实现三级联动下拉菜单的代码,在Chrome浏览器中出现问题的原因及解决方案。作者发现该代码在Chrome中无法正常工作,但在IE中正常。通过调试,将“this.options.value”更改为“this.value”解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   很早用的一段三级联动下拉菜单最近发现在chrome里不能联动下拉了,ie下正常,很奇怪,这段代码在之前有段时间经常用,没出现过什么问题,后来调试发现在“this.options.value”处提示“this.options is unfioned”,应该是浏览器之间js用法不同的问题,查资料测试后,改成“this.value”就正常了
<template> <section> <!--工具条--> <el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> <el-form :inline="true"> <el-form-item> <el-input v-model="keyword" placeholder="关键字"></el-input> </el-form-item> <el-form-item> <el-button type="warning" @click="keywordQuery">查询</el-button> </el-form-item> <el-form-item> <el-button type="primary" @click="handleAdd">新增</el-button> </el-form-item> </el-form> </el-col> <!--列表v-loading="listLoading"--> <el-table :data="tableDatas" v-loading="listLoading" @selection-change="handleSelectionChange" highlight-current-row style="width: 100%;"> <!--多选框--> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column type="index" width="70" label="序号"> </el-table-column> <el-table-column prop="typeName" label="文章类型" width="120"> </el-table-column> <el-table-column prop="status" label="类型状态" width="120"> <template slot-scope="scope"> <div v-if="scope.row.status == 1" style="color: green">可用</div> <div v-if="scope.row.status == 0" style="color: green">不可用</div> </template> </el-table-column> <el-table-column prop="createTime" label="创建时间" width="150"> </el-table-column> <el-table-column prop="updateTime" label="修改时间" width="200"> </el-table-column> <el-table-column prop="pname" label="父级类型" width="300" show-overflow-tooltip> </el-table-column> <el-table-column label="操作"> <template scope="scope"> <el-button size="small" @click="handleEdit(scope.row)">编辑</el-button> <el-button type="danger" size="small" @click="handleDel(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <!--工具条--> <el-col :span="24" class="toolbar"> <el-button type="danger" :disabled="this.sels.length === 0" @click="handlePatchDel">批量删除</el-button> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[5, 10, 15]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="totals" style="float:right;"> </el-pagination> </el-col> <!--添加或修改界面--> <el-dialog title="保存用户" :visible.sync="saveFormVisible" :close-on-click-modal="false"> <el-form :model="saveForm" label-width="80px" :rules="saveFormRules" ref="saveForm"> <el-form-item label="类型名称" prop="typeName"> <el-input v-model="saveForm.typeName" auto-complete="off"></el-input> </el-form-item> <el-form-item label="是否启用"> <el-switch v-model="saveForm.status" :active-value="1" :inactive-value="0" active-color="#13ce66" inactive-color="#ff4949"> </el-switch> </el-form-item> <el-form-item label="父级" > <el-cascader v-model="saveForm.parentId" :options="options" :props="{ checkStrictly: true,value:'id',label:'typeName'}" clearable></el-cascader> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click.native="saveFormVisible = false">取消</el-button> <el-button type="primary" @click.native="saveSubmit">提交</el-button> </div> </el-dialog> </section> </template> <script> export default { data() { return { options: [],//层级目录 //1.分页查询相关数据 totals: 0,//总记录条数 currentPage: 1,//当前页,要传递到后台的 pageSize: 5, //每页显示多少条 tableDatas: [], //当前页数据 listLoading: false, //2.高级查询相关数据 keyword: '', //3.删除相关数据 //4.批量删除相关数据 sels: [], //存储多选记录 //5.添加和修改相关数据 saveFormVisible: false, saveForm: { id:"", typeName:"", status:"1", createTime:"", updateTime:"", parentId:"", }, //6.添加和修改校验规则-表单项校验 saveFormRules: { typeName: [ { required: true, message: '请输入类型名称', trigger: 'blur' } ] }, } }, methods: { //1.分页查询相关方法 //1.1.获取列表数据 getTableData() { let _this = this let param = { page:_this.currentPage, size:_this.pageSize, keyword:_this.keyword } _this.$http.post("/articleType/list",param).then(res=>{ let {code,success,msg,data} = res.data if(success){ _this.tableDatas = data.list _this.totals = data.total }else { _this.$message.error(msg); } }) }, //1.2.选择第几页时触发 handleCurrentChange(curentPage) { this.currentPage = curentPage; this.getTableData(); }, //1.3.选择每页显示记录条数时触发 handleSizeChange(pageSize) { this.pageSize = pageSize; this.getTableData(); }, //2.高级查询相关方法 keywordQuery() { this.currentPage=1; this.getTableData(); }, //3.删除相关方法 handleDel(row) { }, //4.批量删除相关方法 //4.1.选项改变时触发 handleSelectionChange(val) { }, //4.2.批量删除 handlePatchDel() { let _this = this; }, handleAdd() { this.saveFormVisible = true; this.saveForm = { status: 1, // 默认启用 parentId: null, // 清空父级选择 typeName: "" // 清空类型名称 }; }, handleEdit(row) { }, saveSubmit() { let _this=this; this.$refs['saveForm'].validate(valid => { if (valid) { var saveForm = _this.saveForm; saveForm.parentId = saveForm.parentId[saveForm.parentId.length-1]; this.$http.post("/articleType",saveForm).then(res=> { let {code, success, msg, data} = res.data; if (success) { //关闭模态框 this.saveFormVisible = false; _this.$message.success("操作成功"); //重写加载数据 _this.getTableData() _this.getTree() } else { _this.$message.error(msg); } }) }else { console.log('2'); return false; } }) }, getTree(){ let _this=this; this.$http.get("/articleType/getTree").then(res=> { _this.options = res.data.data }) } }, mounted() { this.getTableData(); this.getTree(); } } </script> 新增的提交按钮报错
最新发布
05-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值