如何在插入位置添加用户输入?

时间:2015-08-04 13:50:15

标签: javascript jquery internet-explorer

在使用验证防止特殊字符后,我面临一个关于文本框的奇怪问题。让我说我在其中输入一些文本。现在,如果我在已输入的文本之间更改插入位置并尝试在那里添加文本,插入符号会自动跳到文本的末尾。

对此有何解决方法?

注意: - 我使用的是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, '');
});

0 个答案:

没有答案