[英]Easy question on a jQuery script
我有以下想法。
當用戶鍵入大於10的數字時,將出現一條消息。 假設2秒鍾后如何刪除此消息?
另外,如果您輸入數字,例如8,然后按退格鍵,則會出現0。 怎樣使數字1從一開始就出現在文本框中,而且在用戶按下后台刪除其選擇的任何時候都出現在文本框中,就像上面的示例一樣? 我試圖將value="1"
添加到文本框中,但從頭開始並沒有在div中顯示結果。
謝謝您的幫助
更新我對小提琴有一個小問題,我對其進行了更新
已經有一段時間了,但是嘗試一下:
$('#message').delay(2000).hide();
你應該使用:
您可以為此使用settimeout:
setTimeout(function(){
// remove the message
}, 2000); // time in miliseconds
另外,當我嘗試輸入某些內容時,您的代碼無法正常工作並顯示NaN。
還可以使用:
var code = (e.keyCode ? e.keyCode : e.which);
找出按下了哪個鍵:
編輯
如果要在頁面加載時顯示該值,則將內容添加到函數中,並在准備好文檔時調用它:
EDIT2
更新小提琴以在使用退格鍵后也顯示1
就像是
$('#purchases').keydown(function(e){
if(!(e.which >= 48 && e.which <=58) && e.which !== 8 && e.which !== 46 && e.which !== 37 && e.which !== 39){
e.preventDefault();
}
})
.keyup(function(){
val = parseInt($(this).val() || 0, 10);
if(val > 10){
val = 10;
$(this).val(10);
$('#message').text("no more than 10");
setTimeout(function() { $('#message').text(""); }, 2000);
}
$('#amount').text(val * 10);
});
編輯:
根據您的評論,這是修訂版
var purchases = $('#purchases'),
amount = $('#amount'),
message = $('#message');
purchases.keydown(function(e) {
if (!(e.which >= 48 && e.which <= 58) && e.which !== 8 && e.which !== 46 && e.which !== 37 && e.which !== 39) {
e.preventDefault();
}
}).keyup(function() {
var val = purchases.val();
if (!val) {
amount.text(1);
return;
}
val = parseInt(val, 10);
if (val > 10) {
val = 10;
$(this).val(10);
message.text("no more than 10");
setTimeout(function() {
message.text("");
}, 2000);
}
amount.text(val * 10);
}).val(1);
看起來您可以通過在讀取的輸入上運行parseInt()
來受益。
另外,您可以通過在您的input
元素中添加一個pattern
屬性來使用很酷的HTML5解決方案,假設您的輸入被包裝在表單中並提交了:
<form>
<input type="text" pattern="^\d$" />
</form>
應該只允許輸入一個數字字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.