【问题标题】:Javascript issue with Replace Character [duplicate]替换字符的Javascript问题[重复]
【发布时间】:2017-12-22 23:25:51
【问题描述】:

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

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

【问题讨论】:

  • 问题在于按键。你为什么用它。? blur就够了
  • @Nimish 是吗?为什么?您是指定要求的项目发起人吗?

标签: javascript jquery


【解决方案1】:

试试这个:

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

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

    this.setSelectionRange(start, end)
})
<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" >

【讨论】:

  • 非常感谢,它的工作如您所愿。
  • 您也可以将keypress 更改为keyup,这样该字符就不会显示在输入中。使用keypress,直到输入下一个字符才会触发清理操作。
  • @vi5ion:谢谢。我认为keyup 更合适。
  • @vi5ion 谢谢我会注意的
猜你喜欢
  • 2013-06-12
  • 1970-01-01
  • 2010-10-04
  • 2012-07-23
  • 2020-12-19
  • 2020-10-12
  • 1970-01-01
  • 2019-02-16
  • 2020-08-14
相关资源
最近更新 更多