Javascript只允许数字粘贴

使用Javascript / jQuery的:

$(document).ready(function () { $('#txt').bind("paste", function (e) { var $this = $(this); $this.val($this.val().replace(/[^\d.]/g, '')); }); }); 

HTML:

  

如果值如下

 10-10-20.0a 

结果必须如下

 1010200 

我只想允许它将数值粘贴到文本框中,否则,禁用它。 但是,如果我尝试上面的javascript代码,它就无法正常工作。

我在javascript方面错过了哪里?

将textbox的change事件调用为,而不是document.ready

HTML

  

JQuery的

  function onlyNum() { var $this = $('#txt'); $this.val($this.val().replace(/\D/g, '')); } 

您需要确保正确设置了客户端ID模式,否则发出的文本框可能没有ID“txt”。

https://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode%28v=vs.110%29.aspx

  

另一种方法是使用CSS类,这对于重用非常有用。

  

你的jQuery选择器将是:

 $("input.numbers-only").on("paste", function(){ // do your stuff here }); 

jquery事件应该是:

 $('#.txt').on('paste', function() {...}); 

请参见此处的示例: 捕获粘贴输入

请注意使用超时以允许在操作之前粘贴值。

正确处理事件并获取粘贴值后,您可以添加validation。

另请参阅ste-fu关于引用正确字段的答案,因为asp.net默认会将容器附加到您的文本框ID,并且选择器“#txt”将不起作用。