账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在使用iview时发现要先重置一下表单然后填写完后再重置可以清空Select多选框,否则清不掉,什么原因?
    • 2017-09-05 00:00
    • 11
    80
    0

    html代码

    <template>
        <Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80">
            <FormItem label="姓名" prop="name">
                <Input v-model="formValidate.name" placeholder="请输入姓名"></Input>
            </FormItem>
            <FormItem label="城市" prop="city">
                <Select multiple v-model="formValidate.city" placeholder="请选择所在地">
                    <Option value="beijing">北京市</Option>
                    <Option value="shanghai">上海市</Option>
                    <Option value="shenzhen">深圳市</Option>
                </Select>
            </FormItem>
            <FormItem>
                <Button type="primary" @click="handleSubmit('formValidate')">提交</Button>
                <Button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</Button>
            </FormItem>
        </Form>
    </template>

    js代码

    <script>
        export default {
            data () {
                return {
                    formValidate: {
                        name: '',
                        city: []
                    },
                    ruleValidate: {
                        name: [
                            { required: true, message: '姓名不能为空', trigger: 'blur' }
                        ],
                        city: [
                            { type:"array", required: true, message: '请选择城市', trigger: 'change' }
                        ]
                    }
                }
            },
            methods: {
                handleSubmit (name) {
                    this.$refs[name].validate((valid) => {
                        if (valid) {
                            this.$Message.success('提交成功!');
                        } else {
                            this.$Message.error('表单验证失败!');
                        }
                    })
                },
                handleReset (name) {
                    this.$refs[name].resetFields();
                }
            }
        }
    </script>
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 唐朝小道 普通会员 1楼

      iview的Select多选框在初始化的时候默认就已经清空了。如果你在使用的时候发现要先重置一下表单然后填写完后再重置可以清空Select多选框,否则清不掉,可能是因为你的初始化代码中没有清空Select多选框。

      在iview的官方文档中,有一段代码片段用于初始化Select多选框:

      html <template> <Select v-model="value" :options="options" clear-when="clear" @change="handleChange"> <Option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value"> </Option> </Select> </template>

      在这个代码片段中,clear-when="clear"属性表示当clear事件发生时,清空Select的值。如果你的clear事件没有被监听到,那么默认情况下Select的值不会被清空。

      如果你想清空Select的值,你可以使用clear属性,或者在@change事件中清空Select的值。例如:

      html <template> <Select v-model="value" :options="options" clear-when="clear" @change="handleChange"> <Option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value"> </Option> </Select> </template>

      javascript export default { data() { return { value: '', options: [ { label: 'Option 1', value: 'Option 1' }, { label: 'Option 2', value: 'Option 2' }, { label: 'Option 3', value: 'Option 3' } ] } }, methods: { handleChange(value) { this.value = value; } } }

      在这个例子中,当你在@change事件中选择一个选项时,handleChange方法会被调用,清空Select的值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部