Commit 38646a11711eebb4837bb8a5b37c585efd020b35
1 parent
867eca35
fixed Form reset using Input or Switch
fixed Form reset using Input or Switch
Showing
2 changed files
with
24 additions
and
23 deletions
Show diff stats
src/components/form/form-item.vue
@@ -189,7 +189,7 @@ | @@ -189,7 +189,7 @@ | ||
189 | if (Array.isArray(value) && value.length > 0) { | 189 | if (Array.isArray(value) && value.length > 0) { |
190 | this.validateDisabled = true; | 190 | this.validateDisabled = true; |
191 | prop.o[prop.k] = []; | 191 | prop.o[prop.k] = []; |
192 | - } else if (value) { | 192 | + } else if (value !== this.initialValue) { |
193 | this.validateDisabled = true; | 193 | this.validateDisabled = true; |
194 | prop.o[prop.k] = this.initialValue; | 194 | prop.o[prop.k] = this.initialValue; |
195 | } | 195 | } |
test/routers/form.vue
1 | <template> | 1 | <template> |
2 | - <i-form v-ref:form-inline :model="formInline" :rules="ruleInline" inline> | ||
3 | - <Form-item prop="user"> | ||
4 | - <i-input type="text" :value.sync="formInline.user" placeholder="Username"> | ||
5 | - <Icon type="ios-person-outline" slot="prepend"></Icon> | ||
6 | - </i-input> | 2 | + <i-form v-ref:form-validate :model="formValidate" :rules="ruleValidate" :label-width="100"> |
3 | + <Form-item label="输入框" prop="input"> | ||
4 | + <i-input :value.sync="formValidate.input" placeholder="请输入"></i-input> | ||
7 | </Form-item> | 5 | </Form-item> |
8 | - <Form-item prop="password" :show-message="false"> | ||
9 | - <i-input type="password" :value.sync="formInline.password" placeholder="Password"> | ||
10 | - <Icon type="ios-locked-outline" slot="prepend"></Icon> | ||
11 | - </i-input> | 6 | + <Form-item label="Ajax:" prop="ajax"> |
7 | + <div slot="label"> | ||
8 | + <span>Ajax</span> | ||
9 | + <Tooltip content="基于 axios"> | ||
10 | + <Icon type="ios-help" size="14" color="#3399ff"></Icon> | ||
11 | + </Tooltip> | ||
12 | + <span>:</span> | ||
13 | + </div> | ||
14 | + <Switch :checked.sync="formValidate.ajax"></Switch> | ||
12 | </Form-item> | 15 | </Form-item> |
13 | <Form-item> | 16 | <Form-item> |
14 | - <i-button type="primary" @click="handleSubmit('formInline')">登录</i-button> | 17 | + <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button> |
18 | + <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button> | ||
15 | </Form-item> | 19 | </Form-item> |
16 | </i-form> | 20 | </i-form> |
17 | </template> | 21 | </template> |
@@ -19,23 +23,17 @@ | @@ -19,23 +23,17 @@ | ||
19 | export default { | 23 | export default { |
20 | data () { | 24 | data () { |
21 | return { | 25 | return { |
22 | - formInline: { | ||
23 | - user: '', | ||
24 | - password: '' | 26 | + formValidate: { |
27 | + input: '123', | ||
28 | + ajax: true | ||
25 | }, | 29 | }, |
26 | - ruleInline: { | ||
27 | - user: [ | ||
28 | - { required: true, message: '请填写用户名', trigger: 'change' } | ||
29 | - ], | ||
30 | - password: [ | ||
31 | - { required: true, message: '请填写密码', trigger: 'blur' }, | ||
32 | - { type: 'string', min: 6, message: '密码长度不能小于6位', trigger: 'change' } | ||
33 | - ] | 30 | + ruleValidate: { |
31 | + | ||
34 | } | 32 | } |
35 | } | 33 | } |
36 | }, | 34 | }, |
37 | methods: { | 35 | methods: { |
38 | - handleSubmit(name) { | 36 | + handleSubmit (name) { |
39 | this.$refs[name].validate((valid) => { | 37 | this.$refs[name].validate((valid) => { |
40 | if (valid) { | 38 | if (valid) { |
41 | this.$Message.success('提交成功!'); | 39 | this.$Message.success('提交成功!'); |
@@ -43,6 +41,9 @@ | @@ -43,6 +41,9 @@ | ||
43 | this.$Message.error('表单验证失败!'); | 41 | this.$Message.error('表单验证失败!'); |
44 | } | 42 | } |
45 | }) | 43 | }) |
44 | + }, | ||
45 | + handleReset (name) { | ||
46 | + this.$refs[name].resetFields(); | ||
46 | } | 47 | } |
47 | } | 48 | } |
48 | } | 49 | } |