天天看點

js禁止輸入非數字

其實是有兩種做法的,第一種,當輸入框狀态改變的時候,即change事件時,将内容取出來,将所有的非數字字元,全替換為空,但這樣挺别扭的,你一輸入其它的,顯示出來了,馬上就消失了。第二種,就是以下的做法,監聽鍵盤事件,如果不是數字鍵(分為兩排,字母上面的一排與右邊的數字鍵)則攔截掉該次按下事件,但也有弊端,就是粘貼的時候也還是會粘進來一些字元,或用滑鼠拖拉文字,是以在送出時,需要做下判斷,還有就是它除了數字鍵,其它的也給禁用了,包括删除鍵。。。










$(function() {
			
			$('#save').button().click(function() {
				$('#AdvertForm').submit();
			});
			$('#cancel').button().click(function() {
				history.back();
			});
			$("#delayTime").keydown = keydown($("#delayTime"));
			$("#playCount").keydown = keydown($("#playCount"));
		});
		
		function keydown(doc){
			//doc為元素名稱
			$(doc).keydown(function(evt){
				var kc = evt.keyCode;
				var array = new Array(48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105);
				var flag = true;
				for(var i = 0;i < array.length && flag; i++){
					if(kc == array[i]){
		    			flag = false;
					}
				}
				if(flag){
					evt.keyCode = 0;
					evt.returnValue=false;
					return false;
				}
			});
		}