validationjquery中的数字文本字段

我在jquery中有这个代码,以防止非数字字符输入到文本字段

$("#NumericField").numeric(); 

现在,在文本字段中我无法输入非数字字符。 那没问题。 这里的问题是用户是否会在文本字段上粘贴非数字字符。

如果值是非数字,是否有一种方法/方法来禁用粘贴? 或者有没有其他方法可以处理这种情况,你可以分享?

您可以使用回调检查离开字段,如果值无效,如果值无效,则清除它并显示错误消息:

 var decimal_char = ','; function isvalidnumber(){ var val=$(this).val(); //This regex is from the jquery.numeric plugin itself var re=new RegExp("^\\d+$|\\d*" + decimal_char + "\\d+"); if(!re.exec(val)){ alert("Invalid number"); $(this).val(""); } } $(document).ready(function(){ $("#txtN").numeric(decimal_char,isvalidnumber); }); 

在哪里说:

 value = value.replace(/\./, ""); 

你应该把:

 value = value.replace(/\.\,/, ""); 

我猜 ;-)

我真的最终做到了这一点:

 $('.InputClass').keyup(function(){ if ($(this).val() != "") $(this).val( $(this).val().replace(/[^0-9\.]/g, "") ); }); 

所以,没有恼人的警报也没有任何东西; 如果你输入一个数字后面的数字或点以外的任何东西,就会被扯掉。 简单但有效。

干杯。 希望帮助某人。

我在http://www.kunalbabre.com/jQueryLibrary/index.php上找到了这个脚本:

 $('input[numeric]').keyup(function() { var d = $(this).attr('numeric'); var value = $(this).val(); var orignalValue = value; value = value.replace(/[0-9]*/g, ""); var msg = "Only Integer Values allowed."; if (d == 'decimal') { value = value.replace(/\./, ""); msg = "Only Numeric Values allowed."; } if (value != '') { orignalValue = orignalValue.replace(/([^0-9].*)/g, "") $(this).val(orignalValue); //alert(msg); $(this).after('' + msg + ''); } else { $(this).next('span').remove(); } }); 

它的工作正常,除非数字上有’,’就像’100,000.00’。 它将呈现’100’。 ‘,’和其他的都消失了。

编辑:我认为这是在注册前,但我对它一无所知。 🙁

任何的想法? 救命?