日期:2014-05-16  浏览次数:20399 次

只可以输入数字
$(".crFoodCatalog").live("keydown",function(){
  var flag=/^[^0-9]$/.test($(this).val());
  console.log(flag);
  if(!flag){return false;}
}
代码如上,每次打印出来的flag值都是假,请问为什么?

------解决方案--------------------
var flag=/^\d+$/.test($(this).val());

------解决方案--------------------
键盘事件触发时文本框的内容仍未变化
要达到只允许输入数字的效果应该这样
JScript code

$(".crFoodCatalog").live("keydown",function(e){
  var keycode = $.browser.msie ? e.keyCode : e.which;
  var flag=keycode >=48 && keycode <= 57;
  console.log(flag);
  if(!flag){return false;}
});

------解决方案--------------------
keyup试试
------解决方案--------------------
$('.crFoodCatalog).keyup(function() {
var _this = $(this);
_this.val(_this.val().replace(/\D/g, ''));
});