【问题标题】:Delete white spaces in textbox when copy pasted with jquery用jquery复制粘贴时删除文本框中的空格
【发布时间】:2011-11-29 20:51:02
【问题描述】:

我有一个订单 id(7 位数字)的文本框,在正常情况下您将粘贴从电子邮件复制到文本框,很多时候您会不小心复制一两个空格,这会导致烦人的验证错误。

我希望我的Layout\MasterPage 中的 jquery 代码不允许写入空格,并且当复制粘贴 (使用键盘或鼠标) 带有空格的数字时,将删除空格并仅保留数字。

上述情况应该只发生在类white-space-is-dead的文本框上

【问题讨论】:

  • $('.white-space-is-dead').change(function() {this.trim()}); 有什么问题?你还需要修剪单词之间的空格吗?
  • @P.Brian.Mackey,不起作用,请参阅 JSFiddle jsfiddle.net/U3CRg/3

标签: javascript jquery asp.net-mvc asp.net-mvc-3


【解决方案1】:

$('.white-space-is-dead').change(function() {   
    $(this).val($(this).val().replace(/\s/g,""));
});

您的fiddle. 的更新副本

请注意,\s 可能不是您喜欢的more。如果是这样,请改用文字空格

.replace(/ /g,""));

【讨论】:

  • @gdoron,那是为了测试……对不起,我是想把它拿出来的。我更新了答案。
  • 在这种情况下最好将回调函数传递给 val 方法,如下所示:$( this ).val(function( index, oldValue ) { return oldValue.replace( /\s/g, "" ); }); 它避免了对 $(this).val() 的 2 次调用
  • 它写到 Firefox 的错误控制台。你可以用 FireBug 看到它。这是调试时查看变量值的一种简单方法。它的用法很简单console.log(variableName).
【解决方案2】:
$('.white-space-is-dead').change(function() {   
    $(this).val($(this).val().replace(/\s/g,""));
});

这将使用正则表达式删除所有空格。

【讨论】:

  • 这将替换字符串中的所有空格,包括所有空格字符、ne 行、制表符等。
  • 你能好心一点,制作 jsFiddle 吗?我没有成功使它工作。看我的 jsFiddle jsfiddle.net/U3CRg/22
  • 我更新了评论中的代码...(希望这已经足够好了):)
猜你喜欢
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
相关资源
最近更新 更多