VUE inputイベントモニタIOS手書き中国語、負けられない、解決策
4683 ワード
vueを使用してイベントをバインドする
IOSは手書きキーボードの下で、中国語を入力して、入力することができなくて、後者は鋭敏ではありませんて、原因を推測して、漢字は多くの筆画の構成があって、私達が1つの筆画を書く時、1回のinput事件を触発することができて、しかし筆画、実は漢字ではありませんて、この時、監視の検査は通じないことができて、だから最後に迂回して解決して、inputの内容に対して判別して、数字、英語、中国語、特殊文字か
<input class="form-input f18"
:class="item.inputClass ? item.inputClass : ''"
:type="item.type || 'text'"
autocomplete="off"
v-bind:value="item.value"
:id="item.id || (item.name+index)"
:placeholder="item.placeholder"
:readonly="item.readonly"
:disabled="item.disabled"
:maxlength="item.maxlength"
v-on:focus="inputfocus(item, index)"
v-on:blur="inputblur(item, $event.target.value)" v-on:input="_updateValue( $event.target.value, item, $event.target)" />
</div>
IOSは手書きキーボードの下で、中国語を入力して、入力することができなくて、後者は鋭敏ではありませんて、原因を推測して、漢字は多くの筆画の構成があって、私達が1つの筆画を書く時、1回のinput事件を触発することができて、しかし筆画、実は漢字ではありませんて、この時、監視の検査は通じないことができて、だから最後に迂回して解決して、inputの内容に対して判別して、数字、英語、中国語、特殊文字か
_updateValue(value, item, target) {
if(this.plams.ios && !(value.match(/^.*[\u4e00-\u9fa5]+$/) || value.match(".*[~!@#$%^&*()_+|<>,.?/:;'\\[\\]{}\"\sa-zA-Z0-9]+.*") || value=='')){
return
}
this.updateValue(value, item, target)
},