<el-form-item label="公司所在城市变更后:"> <el-select v-model="list.vg_cityidname" placeholder="请选择" @change="districtData(list.vg_cityidname)" clearable> <el-option v-for="item in getCity" :key="item.vg_cityid" :label="item.vg_name" :value="item.vg_cityid" /> </el-select> </el-form-item> 如果当前选择项发生变化就把id传过去,但v-model绑定了一个初始值,这个初始值是一个name,如果不修改直接提交就会报错
时间: 2024-02-14 20:21:16 浏览: 104
这段代码是一个基于 Element UI 的表单组件,其中包含一个下拉选择框(el-select),通过 v-model 绑定了一个名为 list.vg_cityidname 的变量,表示选择框当前选中的城市名称。当选择框的选项发生变化时,通过 @change 事件触发 districtData 方法,并将当前选中的城市 id 作为参数传递给该方法。
由于 v-model 绑定的是 list.vg_cityidname 变量,而不是城市 id,如果直接提交表单,会将城市名称作为参数传递给后台,导致报错。因此,在提交表单前需要将 list.vg_cityidname 转换为对应的城市 id,或者更改 v-model 绑定的变量为城市 id。
相关问题
<el-dialog title="用户信息" :visible.sync="dialogFormVisible" width="30%"> <el-form label-width="80px" size="small"> <el-form-item label="用户名"> <el-input v-model="form.username" autocomplete="off"></el-input> </el-form-item> <el-form-item label="角色"> <el-select clearable v-model="form.role" placeholder="请选择角色" style="width: 100%"> <el-option v-for="item in roles" :key="item.name" :label="item.name" :value="item.flag"></el-option> </el-select> </el-form-item> <el-form-item label="昵称"> <el-input v-model="form.nickname" autocomplete="off"></el-input> </el-form-item> <el-form-item label="邮箱"> <el-input v-model="form.email" autocomplete="off"></el-input> </el-form-item> <el-form-item label="电话"> <el-input v-model="form.phone" autocomplete="off"></el-input> </el-form-item> <el-form-item label="地址"> <el-input v-model="form.address" autocomplete="off"></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogFormVisible = false">取 消</el-button> <el-button type="primary" @click="save">确 定</el-button> </div> </el-dialog>
这是一个使用 Element UI 组件库开发的对话框(Dialog),包含一个表单(Form)和两个按钮。表单中有多个表单项(FormItem),包括用户名、角色、昵称、邮箱、电话和地址,其中用户名、昵称、邮箱、电话和地址均为输入框(Input),角色为下拉选择框(Select)。对话框底部有两个按钮,分别是取消和确定,点击确定按钮会触发 save 方法。
<el-form-item label="公司所在城市变更后:"> <el-select v-model="list.vg_cityidname" placeholder="请选择" @change="districtData(list.vg_cityidname)" clearable> <el-option v-for="item in getCity" :key="item.vg_cityid" :label="item.vg_name" :value="item.vg_cityid" /> </el-select> </el-form-item> 如果当前选择项发生变化就把id传过去,但v-model绑定了一个初始值,这个初始值是一个name,如果不修改直接提交就会报错
是的,如果直接提交表单,会将城市名称作为参数传递给后台,导致报错。解决这个问题的方法有两种:
1. 将 v-model 绑定的变量修改为城市 id,这样提交表单时就会传递城市 id 作为参数。可以将 list.vg_cityidname 修改为 list.vg_cityid。需要注意的是,修改 v-model 绑定的变量后,需要同步修改 @change 事件中传递的参数,即将 list.vg_cityidname 修改为 list.vg_cityid。
2. 在提交表单前,将 list.vg_cityidname 转换为对应的城市 id。可以通过在提交表单前的处理函数中,根据 list.vg_cityidname 在 getCity 数组中查找对应的城市 id,并将其赋值给 list.vg_cityid,然后再提交表单。需要注意的是,如果找不到对应的城市 id,需要进行错误处理。
阅读全文