替换字符的Javascript问题

时间:2017-07-18 08:06:24

标签: javascript jquery

我正在尝试替换特殊字符,即<,>,&来自模糊和按键的输入字段。并且代码工作正常,但问题是,一旦用户输入所需的字符串然后尝试编辑该字符串,它将光标移动到字符串的末尾,因此用户无法编辑其间的字符串。如何使此脚本更加用户友好,以便用户可以从任何地方编辑现有字符串。

HTML

<input type="text" class="prevent-special" name="name" value="HelloWorld" >

脚本

$('.prevent-special').on('keypress blur',function(e){
    //console.log(e.keyCode);
    $(this).val($(this).val().replace(/\<|\>|\&+/g,''));
})  

JS Example

1 个答案:

答案 0 :(得分:2)

试试这个:

&#13;
&#13;
$('.prevent-special').on('keyup blur',function(e){
    var start = this.selectionStart,
        end = this.selectionEnd

    $(this).val($(this).val().replace(/\<|\>|\&+/g,''))

    this.setSelectionRange(start, end)
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input type="text" class="prevent-special" name="name" value="HelloWorld" >
&#13;
&#13;
&#13;