我想以下面的方式使用jauery驗證文本字段:驗證負數
1.文本字段只需要0-9只用一個小數位;以及
2.如果金額輸入不是負數,請將負號放在輸入數字的 !
$('[name="pm"]').keyup(function() {
//?
});
我想以下面的方式使用jauery驗證文本字段:驗證負數
1.文本字段只需要0-9只用一個小數位;以及
2.如果金額輸入不是負數,請將負號放在輸入數字的 !
$('[name="pm"]').keyup(function() {
//?
});
安排和另外指定的解決方案替換此:
從@Some_Coder回答
1)首先做這個
http://www.texotela.co.uk/code/jquery/numeric/
從中場答案與修改
$('[name="pm"]').keyup(function() { if($(this).val().indexOf('-') != 0){ var val = $(this).val(); $(this).val("-" + val); } if ($(this).val() == '-') { $(this).val(''); } });
你會得到渴望的結果!
您可以通過regular expression和String#match
驗證字符串:
if (this.value.match(/^-?\d+(?:\.\d){0,1}$/)) {
// It's valid
}
或者更jQuery的ISH(和上面不支持textarea
可靠,只是input
):
if ($(this).val().match(/^-?\d+(?:\.\d){0,1}$/)) {
// It's valid
}
(例如,this.value
=>$(this).val()
。)
打破正則表達式下來:
^
- 串的比賽開始-?
- 單可選-
字符\d+
- 一個或多個數字(0-9)(?:...)
- 一個非捕獲分組,包含:
\.\d
- 至多一個.
接着是單個數字{0,1}
- 允許所述非捕獲分組零次或一次$
- 串注的匹配端,上述拒絕。如果你想接受它,它會變得更復雜,但上面的鏈接應該有所幫助。
我想在關鍵事件中驗證它,如上所述。當我按下負號 - 開始時,它沒有采取。但是我的要求是......第二點的帖子!(主要) –
然後你可以做這個測試,但刪除' - ?'部分,然後檢查'$(this).val()。indexOf (' - ')== 0(如果它以'-'開頭),如果不是,說'var val = $(this).val()'然後'$(this).val(「 - 」+ val )'(Aargh爲什麼我總是忘記:@ShahidGhafoor) – 11684
@ShahidGhafoor:強烈建議不要對密鑰進行驗證,或者至少不要採用任何侵入方式。在你的特定情況下,通過檢查「this.value!==」 - 「」,你可以很容易避免一個不必要的「無效」標誌,因爲你的字符串非常簡單。例如,'if(this.value!==「 - 」){/ * ...做驗證... * /}'。 –
如果你使用jQuery,那麼你可以使用這個插件。
如果金額輸入不是負數,請在輸入數字的乞討處輸入負號!那這個呢? –
嘗試這段代碼。
$('[name="pm"]').keyup(function() { if($(this).val().indexOf('-') != 0){ var val = $(this).val(); $(this).val("-" + val); } });
如果它不工作,用$( '[NAME = 「PM」]')
不錯!但有兩個問題! 1)在開始時需要多個負號,我只需要一個 - 符號。2)如果用戶在開始時輸入金額然後是負號,此時,您建議解決方案,即使用戶剛剛點擊開始時放置 - 符號,只需點擊在文本字段上。 –
從我上面的帖子應付.....如果金額輸入不是負面的,把負號放在輸入的數字的尾部!(如果金額已輸入,則.....)(如果空了,那麼不需要 - SYMBOL)希望我再次清除場景 –
是隊友,剛剛看到你的帖子..但我看到@tjcrowder已經回答了。 – Playmaker
這不是一個jQuery的東西,它是一個JavaScript的東西。我爲你添加了標籤。 –
沒有冒犯,但這看起來像是「給我代碼」類型的問題。你應該考慮告訴我們你先試了什麼。 –