在使用验证防止特殊字符后,我面临一个关于文本框的奇怪问题。让我说我在其中输入一些文本。现在,如果我在已输入的文本之间更改插入位置并尝试在那里添加文本,插入符号会自动跳到文本的末尾。
对此有何解决方法?
注意: - 我使用的是IE 11。
文本框: -
<div class="form-group">
<label data-i18n="rpt_name"></label>
<span class="required">*</span>
<input type="text" class="form-control" id="subNameID">
</div>
错误来源是避免使用特殊字符的验证。
$('#subNameID').bind('keypress', function (e) {
if ($('#subNameID').val().length == 0) {
var k = e.which;
var ok = k >= 65 && k <= 90 || // A-Z
k >= 97 && k <= 122 || // a-z
k >= 48 && k <= 57; // 0-9
if (!ok) {
e.preventDefault();
}
}
})
也尝试使用以下解决方案,但同样的问题。
$("#subNameID").on("keypress keyup paste", function (e) {
if (e.keyCode == 37 || e.keyCode == 39 || e.keyCode == 32 || e.keyCode == 8)
return true;
this.value = this.value.replace(/[^a-zA-Z0-9\-\._\s]/g, '');
});