2012-02-02 57 views
3

我使用一個jQuery插件數字,只允許數值在輸入打字輸入0(零)禁止在第一個字符位置

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

除了這是什麼插件做我需要在第一個字符位置禁用typyng'0'(零)。

任何幫助,將不勝感激。

+0

嘛,你嘗試過什麼? – 2012-02-02 03:05:36

+0

沒什麼。我是一個Jquery nube。 javascript – boruchsiper 2012-02-02 03:06:26

+0

您是否可以提供您正在使用的插件的鏈接? – ryanlahue 2012-02-02 03:10:07

回答

7

試試這個。

$('input').keypress(function(e){ 
    if (this.value.length == 0 && e.which == 48){ 
     return false; 
    } 
}); 

Demo

+0

謝謝。這幾乎是完美的,因爲零出現一秒鐘。我本來希望零不出現。我會接受作爲答案,因爲它完成了工作。 – boruchsiper 2012-02-02 03:38:35

+0

@boruchsiper - 檢查我編輯的答案,它甚至更好。現在你根本看不到0。 – ShankarSangoli 2012-02-02 03:43:09

+0

你是男人夥計!奇蹟般有效! – boruchsiper 2012-02-02 03:52:47

0

我試圖像這樣開始:

$('input').keyup(function(){ 
    if ($(this).val().length === 1 && $(this).val() === 0){ 
     alert('No leading zeroes!'); 
    } 
); 
+0

謝謝。這幾乎是我需要的。只是我不需要它來提醒,我只是希望keydown不會發生,就像不能用數字插件輸入任何數字值一樣。 – boruchsiper 2012-02-02 03:14:11

1

像這樣的東西應該讓你開始:

$("#tbQuan").numeric().keyup(function (e) { 
    var val = $(this).val(); 
    while (val.substring(0, 1) === '0') { //First character is a '0'. 
     val = val.substring(1);    //Trim the leading '0' 
    } 
    $(this).val(val); //update input with new value 
}); 
+0

謝謝。這幾乎可行。問題是它允許在第一個位置輸入0,並在下一次輸入另一個數字時替換。我需要禁用在第一個位置一起輸入0。 – boruchsiper 2012-02-02 03:25:28

+0

哎呀!請嘗試關鍵事件。修改的答案反映了這一點。很抱歉,您不能使用JavaScript來禁用鍵盤上的某些鍵,因爲這遠遠超出了JavaScript的範圍。您可以嘗試清理輸入內容(這是該腳本正在執行的內容)。 – pete 2012-02-02 03:28:33

+0

謝謝。看起來@ShankarSangoli用類似的解決方案擊敗了你,因此我首先接受了他的答案。儘管我的答案與你的答案一樣。在清除之前0出現一會兒。我寧願零不出現, – boruchsiper 2012-02-02 03:45:49

1

對於keyUp事件

$('.numeric').keyup(function(event) { 

var currentVal = $(this).val(); 

if (currentVal.length == 1 && (event.which == 48 || event.which == 96)) { 
    currentVal = currentVal.slice(0, -1); 
} 
$(this).val(currentVal); 

});

DEMO

  • 確保同時添加48周96的活動,以支持數字鍵0和0鍵盤
  • 添加這種方式,用戶去知道前導零不準
如果文本框在屏蔽
0

然後:::

$('#numeric').keyup(function(event) { 

    var currentVal = $(this).val(); 

    if (currentVal.substring(0, 1) === '0' && (event.which == 48 || event.which == 96)) { 

     currentVal=currentVal.substring(1); 
    } 
    $(this).val(currentVal); 
    }); 

OR *** ****************************

$("#numeric").keyup("input propertychange paste", function (e) { 
var val = $(this).val() 
var reg = /^0/gi; 
if (val.match(reg)) { 
    $(this).val(val.replace(reg, "")); 
    alert("Please phone number first character bla blaa not 0!"); 
    $(this).mask("999 999-9999"); 

} 

});


First Sample DEMO :

Second Sample DEMO :

相關問題