2010-05-18 8 views
8

için kapalı olarak "otomatik tamamlama" dönüm:jQuery - Yani, bu kodu var tüm formları (hatta olanları henüz yüklü)

$(document).ready(function(){ 
    $('form').attr('autocomplete', 'off'); 
}); 

Zaten mevcut tüm formları için harika çalışıyor. Sorun şu ki, benim bazı formları pop up yüklü ajax yüklü. Bu, daha sonra "yüklendikleri" için geçerli olmayacaktır.

Canlı() işlevinin olduğunu biliyorum - ancak bu yalnızca olayları eklemek içindir. Bu tüm formları uygulamak için iyi bir yolu nedir?

Teşekkürler.

cevap

27

Canlı olayı odak olayına bağlayabilir ve ardından bu özniteliği değiştirebilirsiniz. jQuery 1.7 jQuery.live itibarıyla

$(document).ready(function(){ 
    $(':input').live('focus',function(){ 
     $(this).attr('autocomplete', 'off'); 
    }); 
}); 

kaldırıldı. Bu kod şu şekilde görünecektir:

$(document).ready(function(){ 
    $(document).on('focus', ':input', function(){ 
     $(this).attr('autocomplete', 'off'); 
    }); 
}); 
+0

şu andan kullanmalıdır http://api.jquery.com/live/ canlı() fonksiyonu artık önerilmemektedir http: // api. jquery.com/on/ –

+0

@AndyBrudtkuhl aşağı doğru bir neden 3 yıllık bir cevap oylama çünkü onun biraz güncel değil. Cevapları daha güncel bir litte olarak güncelledim. – PetersenDidIt

+0

Çalışmadığı için downvotedim - bu düşüşün anlamı değil mi? Neden güncellenmiş bir cevapla birlikte olduğumu belirten bir yorum bıraktım. Bana uygun Stack Etiquette gibi görünüyor. Orijinal yanıtın kullanımdan kaldırıldığının açık olduğunu şimdi reddettim. Güncelleme için teşekkürler. –

3

Canlı etkinlik artık kullanımdan kaldırıldı, bunun yerine olay yerine bize geçmelisiniz. Bu, henüz oluşturulup oluşturulmadığı olursa olsun DOM'daki her girdiye eklenecektir. Daha sonra bu girdiye autocomplete = "off" özniteliğini ekler. Belge hazır olmadan önce krom gibi bazı tarayıcılar 'otomatik tamamlama' yük olabilir çünkü

$(document).ready(function() { 
    $(document).on('focus', ':input', function() { 
    $(this).attr('autocomplete', 'off'); 
    }); 
}); 
1

kullanımı jquery, yeterli olmayabilir yapabileceği verileri kaydedilmiş ($ (document) .ready)

jquery bu

gibi çalışır
$('input, :input').attr('autocomplete', 'off'); 

fakat daha verimli olabilir girişinizi etiketleri manuel otomatik tamamlama = 'off' eklemek