【问题标题】:Enable Backspace with jQuery oninput event within the text on an input form?在输入表单的文本中使用 jQuery oninput 事件启用退格?
【发布时间】:2026-01-28 21:00:01
【问题描述】:

我有一个输入表单,它应用了一个 jQuery 事件,它在用户输入周围创建方括号。问题是该事件阻止了使用退格键删除文本的能力。我正在寻找一种方法来检查是否按下退格键并防止代码运行。

jQuery 脚本

function test(obj) {
var oldVal = obj.val().replace(/\[/g,\'\');
oldVal = oldVal.replace(/\]/g,\'\');
var val = \'[\' + oldVal + \']\';
obj.val(val);

输入表格

oninput="test($(this));"

【问题讨论】:

  • test($(this))?我认为$(this) 在那里未定义。你能不能只做if (e.which == 8) return false(8 是退格)
  • 如果您在问题中添加 jsfiddle,则可以更轻松地回答此类问题。 jsfiddle.net
  • 这是一个需要稍微修改的jsfiddle:jsbin.com/gaxewatu/22/edit?html,js,output

标签: javascript jquery text input backspace


【解决方案1】:
 function test(obj,e) {  
      if(!(e.which == 8)){
           var oldVal = obj.val().replace(/\[/g,'');
           oldVal = oldVal.replace(/\]/g,'');
           var val = '[' + oldVal + ']';
           obj.val(val);
      }
 }

并将事件作为参数传递..

 <input class="text-box" onkeyup="test($(this),event)">

【讨论】:

  • @Jay 哪个函数??
  • obj 添加括号的那个。