Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
cbc4e404
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cbc4e404
编写于
3月 30, 2022
作者:
D
DCloud_LXH
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: input ignoreCompositionEvent
上级
2f82156f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
45 addition
and
19 deletion
+45
-19
src/core/view/components/input/index.vue
src/core/view/components/input/index.vue
+18
-7
src/core/view/components/textarea/index.vue
src/core/view/components/textarea/index.vue
+22
-11
src/core/view/mixins/field.js
src/core/view/mixins/field.js
+4
-0
src/platforms/app-plus/runtime/web-view-api.js
src/platforms/app-plus/runtime/web-view-api.js
+1
-1
未找到文件。
src/core/view/components/input/index.vue
浏览文件 @
cbc4e404
...
...
@@ -32,6 +32,7 @@
@
input.stop=
"_onInput"
@
compositionstart.stop=
"_onComposition"
@
compositionend.stop=
"_onComposition"
@
compositionupdate.stop=
"_onComposition"
@
keyup.enter.stop=
"_onKeyup"
>
<!-- fix: 禁止 readonly 状态获取焦点 -->
...
...
@@ -201,7 +202,7 @@ export default {
_onInput
(
$event
,
force
)
{
let
outOfMaxlength
=
false
if
(
this
.
composing
)
{
if
(
this
.
composing
&&
this
.
ignoreCompositionEvent
)
{
return
}
...
...
@@ -241,18 +242,28 @@ export default {
if
(
outOfMaxlength
)
return
if
(
!
this
.
ignoreCompositionEvent
)
this
.
valueSync
=
this
.
$refs
.
input
.
value
this
.
$triggerInput
(
$event
,
{
value
:
this
.
valueSync
},
force
)
},
_onComposition
(
$event
)
{
if
(
$event
.
type
===
'
compositionstart
'
)
{
this
.
composing
=
true
}
else
if
(
this
.
composing
)
{
this
.
composing
=
false
// 部分输入法 compositionend 事件可能晚于 input
this
.
_onInput
(
$event
)
switch
(
$event
.
type
)
{
case
'
compositionstart
'
:
this
.
composing
=
true
break
case
'
compositionend
'
:
if
(
this
.
composing
)
{
this
.
composing
=
false
// 部分输入法 compositionend 事件可能晚于 input
this
.
_onInput
(
$event
)
}
break
}
!
this
.
ignoreCompositionEvent
&&
this
.
$trigger
(
$event
.
type
,
$event
,
{
data
:
$event
.
data
})
},
_resetFormData
()
{
this
.
valueSync
=
''
...
...
src/core/view/components/textarea/index.vue
浏览文件 @
cbc4e404
...
...
@@ -41,8 +41,9 @@
:enterkeyhint="confirmType"
class="uni-textarea-textarea"
@change.stop
@compositionstart.stop="_onCompositionstart"
@compositionend.stop="_onCompositionend"
@compositionstart.stop="_onComposition"
@compositionend.stop="_onComposition"
@compositionupdate.stop="_onComposition"
@input.stop="_onInput"
@focus="_onFocus"
@blur="_onBlur"
...
...
@@ -190,15 +191,22 @@ export default {
!
this
.
confirmHold
&&
this
.
$refs
.
textarea
.
blur
()
}
},
_onCompositionstart
(
$event
)
{
this
.
composing
=
true
},
_onCompositionend
(
$event
)
{
if
(
this
.
composing
)
{
this
.
composing
=
false
// 部分输入法 compositionend 事件可能晚于 input
this
.
_onInput
(
$event
)
_onComposition
(
$event
)
{
switch
(
$event
.
type
)
{
case
'
compositionstart
'
:
this
.
composing
=
true
break
case
'
compositionend
'
:
if
(
this
.
composing
)
{
this
.
composing
=
false
// 部分输入法 compositionend 事件可能晚于 input
this
.
_onInput
(
$event
)
}
break
}
!
this
.
ignoreCompositionEvent
&&
this
.
$trigger
(
$event
.
type
,
$event
,
{
data
:
$event
.
data
})
},
// 暂无完成按钮,此功能未实现
_confirm
(
$event
)
{
...
...
@@ -218,10 +226,13 @@ export default {
this
.
height
=
height
},
_onInput
(
$event
,
force
)
{
if
(
this
.
composing
)
{
if
(
this
.
composing
&&
this
.
ignoreCompositionEvent
)
{
this
.
valueComposition
=
$event
.
target
.
value
return
}
if
(
!
this
.
ignoreCompositionEvent
)
this
.
valueSync
=
this
.
$refs
.
textarea
.
value
this
.
$triggerInput
(
$event
,
{
value
:
this
.
valueSync
,
cursor
:
this
.
$refs
.
textarea
.
selectionEnd
...
...
src/core/view/mixins/field.js
浏览文件 @
cbc4e404
...
...
@@ -66,6 +66,10 @@ export default {
confirmHold
:
{
type
:
Boolean
,
default
:
false
},
ignoreCompositionEvent
:
{
type
:
Boolean
,
default
:
true
}
},
data
()
{
...
...
src/platforms/app-plus/runtime/web-view-api.js
浏览文件 @
cbc4e404
...
...
@@ -3,7 +3,7 @@ const webviewIds = []
const
UNIAPP_SERVICE_NVUE_ID
=
'
__uniapp__service
'
const
WEB_INVOKE_APPSERVICE
=
'
WEB_INVOKE_APPSERVICE
'
function
isNvue
()
{
function
isNvue
()
{
return
(
window
.
__dcloud_weex_postMessage
||
window
.
__dcloud_weex_
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录