mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-05-25 07:49:15 +08:00
feat(Field): add click-input event (#6239)
This commit is contained in:
parent
f344334e12
commit
a7968c5f6e
@ -253,6 +253,7 @@ Field support all native events of input tag
|
|||||||
| blur | Triggered when input loses focus | _event: Event_ |
|
| blur | Triggered when input loses focus | _event: Event_ |
|
||||||
| clear | Triggered when click clear icon | _event: Event_ |
|
| clear | Triggered when click clear icon | _event: Event_ |
|
||||||
| click | Triggered when click Field | _event: Event_ |
|
| click | Triggered when click Field | _event: Event_ |
|
||||||
|
| click-input `v2.8.1` | Triggered when click input | _event: Event_ |
|
||||||
| click-left-icon | Triggered when click the left icon of Field | _event: Event_ |
|
| click-left-icon | Triggered when click the left icon of Field | _event: Event_ |
|
||||||
| click-right-icon | Triggered when click the right icon of Field | _event: Event_ |
|
| click-right-icon | Triggered when click the right icon of Field | _event: Event_ |
|
||||||
|
|
||||||
|
@ -271,15 +271,16 @@ export default {
|
|||||||
|
|
||||||
除下列事件外,Field 默认支持 Input 标签所有的原生事件
|
除下列事件外,Field 默认支持 Input 标签所有的原生事件
|
||||||
|
|
||||||
| 事件 | 说明 | 回调参数 |
|
| 事件 | 说明 | 回调参数 |
|
||||||
| ---------------- | -------------------- | ------------------------------ |
|
| -------------------- | -------------------- | ------------------------------ |
|
||||||
| input | 输入框内容变化时触发 | _value: string (当前输入的值)_ |
|
| input | 输入框内容变化时触发 | _value: string (当前输入的值)_ |
|
||||||
| focus | 输入框获得焦点时触发 | _event: Event_ |
|
| focus | 输入框获得焦点时触发 | _event: Event_ |
|
||||||
| blur | 输入框失去焦点时触发 | _event: Event_ |
|
| blur | 输入框失去焦点时触发 | _event: Event_ |
|
||||||
| clear | 点击清除按钮时触发 | _event: Event_ |
|
| clear | 点击清除按钮时触发 | _event: Event_ |
|
||||||
| click | 点击时触发 | _event: Event_ |
|
| click | 点击 Field 时触发 | _event: Event_ |
|
||||||
| click-left-icon | 点击左侧图标时触发 | _event: Event_ |
|
| click-input `v2.8.1` | 点击输入区域时触发 | _event: Event_ |
|
||||||
| click-right-icon | 点击右侧图标时触发 | _event: Event_ |
|
| click-left-icon | 点击左侧图标时触发 | _event: Event_ |
|
||||||
|
| click-right-icon | 点击右侧图标时触发 | _event: Event_ |
|
||||||
|
|
||||||
### 方法
|
### 方法
|
||||||
|
|
||||||
|
@ -113,17 +113,14 @@ export default createComponent({
|
|||||||
},
|
},
|
||||||
|
|
||||||
listeners() {
|
listeners() {
|
||||||
const listeners = {
|
return {
|
||||||
...this.$listeners,
|
...this.$listeners,
|
||||||
input: this.onInput,
|
|
||||||
keypress: this.onKeypress,
|
|
||||||
focus: this.onFocus,
|
|
||||||
blur: this.onBlur,
|
blur: this.onBlur,
|
||||||
|
focus: this.onFocus,
|
||||||
|
input: this.onInput,
|
||||||
|
click: this.onClickInput,
|
||||||
|
keypress: this.onKeypress,
|
||||||
};
|
};
|
||||||
|
|
||||||
delete listeners.click;
|
|
||||||
|
|
||||||
return listeners;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
labelStyle() {
|
labelStyle() {
|
||||||
@ -337,6 +334,10 @@ export default createComponent({
|
|||||||
this.$emit('click', event);
|
this.$emit('click', event);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onClickInput(event) {
|
||||||
|
this.$emit('click-input', event);
|
||||||
|
},
|
||||||
|
|
||||||
onClickLeftIcon(event) {
|
onClickLeftIcon(event) {
|
||||||
this.$emit('click-left-icon', event);
|
this.$emit('click-left-icon', event);
|
||||||
},
|
},
|
||||||
@ -392,7 +393,12 @@ export default createComponent({
|
|||||||
|
|
||||||
if (inputSlot) {
|
if (inputSlot) {
|
||||||
return (
|
return (
|
||||||
<div class={bem('control', [inputAlign, 'custom'])}>{inputSlot}</div>
|
<div
|
||||||
|
class={bem('control', [inputAlign, 'custom'])}
|
||||||
|
onClick={this.onClickInput}
|
||||||
|
>
|
||||||
|
{inputSlot}
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,25 @@ test('click event', () => {
|
|||||||
expect(wrapper.emitted('click')[0][0]).toBeTruthy();
|
expect(wrapper.emitted('click')[0][0]).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('click icon event', () => {
|
test('click-input event', () => {
|
||||||
|
const wrapper = mount(Field);
|
||||||
|
|
||||||
|
wrapper.find('input').trigger('click');
|
||||||
|
expect(wrapper.emitted('click-input')[0][0]).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('click-input event when using input slot', () => {
|
||||||
|
const wrapper = mount(Field, {
|
||||||
|
scopedSlots: {
|
||||||
|
input: () => 'Custom Input',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
wrapper.find('.van-field__control').trigger('click');
|
||||||
|
expect(wrapper.emitted('click-input')[0][0]).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('click-icon event', () => {
|
||||||
const wrapper = mount(Field, {
|
const wrapper = mount(Field, {
|
||||||
propsData: {
|
propsData: {
|
||||||
value: 'a',
|
value: 'a',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user