[英]JQuery class selectors
我有一個html文本框,其中一些有類名作為數字
<input type="text" name="msg_timeout" class="numbers" />
類似地,有不同的文本框,類作為數字 。我想將keydown事件分配給那些具有類作為數字的文本框,所以我嘗試使用以下,但不工作
$('input.numbers').each
$('.numbers').each
$('input.numbers:text').each
$('input:text.numbers').each
$('input[type=text]').each // only this is working but it selects all textboxes.
請讓我知道。 代碼如下
$(document).ready(function() {
$('input.numbers').each(function() {
$(this).get(0).oncontextmenu = function() { return false; };
$(this).bind("keydown",function(event) {
// alert(window.event);
// Allow only backspace and delete
if ( event.keyCode == 46 || event.keyCode == 8
&& (event.keyCode >=96 && event.keyCode <=105) )
{
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57 || event.shiftKey || event.ctrlKey || event.altKey ) {
event.preventDefault();
}
}
var forbiddenKeys = new Array('c', 'x', 'v');
var keyCode = (event.keyCode) ? event.keyCode : event.which;
var isCtrl;
isCtrl = event.ctrlKey;
if (isCtrl) {
for (i = 0; i < forbiddenKeys.length; i++) {
if (forbiddenKeys[i] == String.fromCharCode(keyCode).toLowerCase()) {
//alert('You are prompted to type this twice for a reason!');
return false;
}
}
}
return true;
});
});
});
你是否在dom.ready之后調用選擇器?
$(document).ready(function() {
$('input.numbers').keydown(function() {
// code here
});
});
如果沒有$(document).ready()
那么在評估選擇器時,屏幕上會出現哪些元素是不可預測的。
您不需要顯式迭代所有匹配元素來為它們分配事件處理程序。 以下將做到這一點:
// bind a keydown handler to all input elements with class 'numbers'
$("input.numbers").keydown(function() {
// handler implementation here
});
你沒有發布你的整個代碼,但我猜你也可能會動態添加一些元素?
在那種情況下..使用..
$("input.numbers").live('keydown', function() {
// do stuff here
});
你的意思是“數字”不是文本而是數字,數字,整數?
$("input").filter(function() {
return $(this).attr("class").match(/\d+/);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.