Skip to content

Commit af12bee

Browse files
committed
(bugfix):fix iOS non-english input issue
1 parent 345b1dc commit af12bee

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

packages/textfield/Input.svelte

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,17 @@
2929
export let dirty = false;
3030
export let invalid = false;
3131
export let updateInvalid = true;
32+
export let inputType = 'insertText'
3233
3334
let element;
3435
let valueProp = {};
3536
3637
$: if (type === 'file') {
3738
delete valueProp.value;
3839
} else {
39-
valueProp.value = value === undefined ? '' : value;
40+
if (inputType !== 'insertCompositionText') {
41+
valueProp.value = value === undefined ? '' : value;
42+
}
4043
}
4144
4245
onMount(() => {

packages/textfield/Textfield.svelte

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,15 @@
3434
{:else}
3535
<Input
3636
{type}
37+
{inputType}
3738
{disabled}
3839
bind:value
3940
bind:files
4041
bind:dirty
4142
bind:invalid
4243
{updateInvalid}
4344
on:change
44-
on:input
45+
on:input={updateInputType}
4546
{...((fullwidth && label) ? {placeholder: label} : {})}
4647
{...prefixFilter($$props, 'input$')}
4748
/>
@@ -131,6 +132,7 @@
131132
let textField;
132133
let addLayoutListener = getContext('SMUI:addLayoutListener');
133134
let removeLayoutListener;
135+
let inputType = 'insertText';
134136
135137
$: valued = value !== uninitializedValue || files !== uninitializedValue;
136138
@@ -158,6 +160,10 @@
158160
removeLayoutListener = addLayoutListener(layout);
159161
}
160162
163+
function updateInputType(e) {
164+
inputType = e.inputType
165+
}
166+
161167
onMount(() => {
162168
textField = new MDCTextField(element);
163169

0 commit comments

Comments
 (0)