2014-10-03 117 views
1

如果用戶輸入的數字高於24並且用戶輸入了0,我希望此功能忽略輸入。現在,我可以輸入高於24的數字。爲什麼?如果輸入大於24的數字或只輸入0,則忽略輸入

$('body').on('keyup', 'input[name="textfield-number-month"]', function(e) { 
    var data_val = $(this).val(); 

    if(parseInt(data_val) >= 25 || parseInt(data_val) == 0) { 
     e.preventDefault(); 
     return false; 

    } else if(parseInt(data_val) <= 24) { 
     // Some code... 
    } 
}); 

jsFiddle

+0

你爲什麼不只是把一個破發點出現,並提供一些細節 – Steve 2014-10-03 22:48:15

+0

@Steve斷點?你想了解更多細節? – Erik 2014-10-03 22:48:57

+0

是被打的功能嗎? data_val的價值是什麼?當你輸入25時會發生什麼? – Steve 2014-10-03 22:53:42

回答

1

我建議你刪除最後一個字符時,用戶輸入範圍

$(this).val(data_val.slice(0,1)); 

這裏以外的值是一個jsFiddle

+0

現在我們到了某個地方!非常感謝!我會盡快接受你的回答。如果你知道如何完全忽略/阻止打字,如果匹配超過數字,這將是非常棒的!當你輸入一些數字超過24時,沒有什麼會發生。 – Erik 2014-10-03 23:00:49

+0

是的,我試過了,但我現在給你這個解決方案,我會盡力阻止打字,一旦我做到了,我會發布更新 – Khalid 2014-10-03 23:03:33

+0

謝謝:)我感謝你的幫助 – Erik 2014-10-03 23:04:21

1

你只是回採進一步分型,但你可以做99號......你必須設置值回例如:

if (parseInt(data_val) >= 25 || parseInt(data_val) == 0) { 
     $(this).val("25"); 
     e.preventDefault(); 
     return false; 

    } else if (parseInt(data_val) <= 24) { 
     // Some code... 
    } 

,你也可以將它設置剛回來:

 $(this).val(""); 
+0

非常感謝!所以我不能讓這個函數忽略用戶輸入的內容?例如,用戶鍵入23並且它可以工作,但是當用戶輸入26時,什麼都不會發生。 – Erik 2014-10-03 22:55:04