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”将不起作用。