2012-12-14 16 views
10

Birinin belirli bir sınıfa metin girişlerinde "girme" yaptığını saptamam gerekiyor. aşağıdaki gibiBelirli bir sınıfa ait girdi öğelerinin girişini algıla.

Benim jQuery geçerli:

<tr><td> Personal Name </td></tr> 
<tr><td> <input type='text' class='large'> </td></tr> 

<tr><td> Email</td></tr> 
<tr><td> <input type='text' class='large'> </td></tr> 

Ben alanlar kimlikleri verilmiş ve işe yaradı $('#elementid').keypress denedim:

$('input.large').keypress(function (e) { 
    if(e.which ==13) 
     console.log("pressed enter"); 
}); 

Benim HTML böyle bir şeydir. Ama bu işe yaramıyor. Konsol çıkışı yok. Neyi kaçırıyorum?

+0

Kodunuzu hazır işleyiciye koydunuz mu? – undefined

+0

Bende. Bundan önceki ve sonraki diğer kodlar iyi çalışıyor. – user961627

+0

http://jsfiddle.net adresinde bir demo sunabilir misiniz? – undefined

cevap

10
olduğunu

Canlı kullanabilirsiniz document içinde (.on()) olayları ile keydown (Bence bu daha iyi) . keydown'u seçiciyle eşleşen mevcut ve gelecekteki öğelerde algılamaya izin verir.

HTML:

<strong>Personal Name</strong> 
<input type='text' class='large' /><br /> 

<strong>Email</strong> 
<input type='text' class='large' /> 
​ 

JS (jQuery ile çalıştırılabilir 1.7+):

jQuery(document).on('keydown', 'input.large', function(ev) { 
    if(ev.which === 13) { 
     // Will change backgroundColor to blue as example 
     this.style.backgroundColor = '#EFF'; 

     // Avoid form submit 
     return false; 
    } 
}); 

jsFiddle: En açıklama http://jsfiddle.net/qvhWD/

+0

Bunu nereye koymalıyım? Bunu $ (document) .ready (function() {...}) 'ın içinde ve ayrıca dışında denedim, ancak her iki şekilde de bir sözdizimi hatası vardı. – user961627

+0

Bu sözdizimi hatası nerede?** Deneyin **: Dosyanın sonunda bu içeriğe sahip özel bir

2

onay bu bir: Bu html kullanılan http://jsfiddle.net/EJyyr/

:

<tr><td> Personal Name </td></tr> 
<tr><td> <input type='text' class='large' id='a'> </td></tr> 

<tr><td> Email</td></tr> 
<tr><td> <input type='text' class='large' id='b'> </td></tr> 

ve bu jQuery which logs the input text id

$('.large').keypress(function (e) { 
    if(e.which ==13) 
    console.log($(this).attr('id')); 
}); 
0

Teşekkür David Rodrigues. Çok yardımcı oldu. JQuery kitaplığımı yükseltmek zorunda kaldım ve düzgün çalışması için .live() işlevi durdu.

Bir formun tüm onay kutusu girişlerini seçin aşağıdaki

için kullanabilirsiniz zaman select_all_checkboxes giriş tipi onay kutusunu tıklama:

jQuery(document).on("click", "#select_all_checkboxes", function(){ 
    var chk = this.checked; 
    $('input[id=selectAll]').each(function(){ 
     this.checked = chk; 
    }); 
}); 

Çağrı bir işlev "CheckMail" kullanıcı alanını terk sınıf adı "e-posta" olan herhangi bir alanın tıklatılarak sekmesinin kullanılması:

jQuery(document).on("blur", 'input.email', function(event){ 
    var email = $(this).val(); 
    if (!checkMail(email)) { 
     alert("Invalid email."); 
     $(this).focus(); 
    } 
}); 
+0

Cevabınız takdir edilirken, başka bir kullanıcının cevabı hakkında bir yorum sadece bu olmalıdır. – J0e3gan

İlgili konular