2012-01-16 14 views
11

Formum boyunca belirli hata iletilerine sahip gizli bir div var. Form gönderilmeden önce, tüm gerekli alanların bir metinle doldurulup doldurulmadığını kontrol etmek için bir validate rutinini çalıştırıyorum. Değilse, 'redAlert' sınıfına sahip bir div, metin alanının hemen üstünde görünür. Ayrıca, hata mesajları görüntülendiğinde iletişim penceresinin bu konuma sağa kaydırılmasını istiyorum. Bunu yapmak için epeyce eklenti olduğunu biliyorum ama bunu basit JQuery kullanarak yapmak istiyorum. Ben A) sınıfın ilk görünür div bulmaya çalışıyorum redAlert, b) Bu div üzerinde .offset() 'i çağırarak konumunu bul ve c) window nesnesinde .scroll() çağırıyor ama bunu alamıyorum çalışmak. Tamamen bir şeyi özlediğimde veya sözdizimi geçerli değilse (Bana kendimi Jquery ile sözdizimi hatasıyla uğraşırken buldum) bildirin. Aşağıda benim kodum. Ayrıca - bu sadece görünür div (bir kerede sadece bir hata div varsayarak) bulmak, bana belirli bir sınıf ile ilk görünür div bulmak için bana seçici sağlayabilir misiniz.Hata ve netleme durumunda belirli div konumlarına jquery kaydırma

var errorDiv = $('.redAlert:visible').attr("id"); 
var scrollPos = $("#"+errorDiv).offset(); 
//alert(scrollPosition); // This alert always says 'null', why ? 
$(window).scroll(scrollPos); 
//Also tried scrollTo(); 

Şimdiden çok teşekkürler.

cevap

23
var errorDiv = $('.redAlert:visible').first(); 
var scrollPos = errorDiv.offset().top; 
$(window).scrollTop(scrollPos); 

Demo:http://jsfiddle.net/Cjuve/2/

+0

Mükemmel geride bıraktı! Cazibe gibi çalışır. Çok teşekkürler !! – user1006072

+0

Mükemmel! Teşekkürler –

1

Ben onun olacak işe sanmıyorum. koda

Bak ben

$('html, body').animate({ 
    scrollTop: ($('.error').first().offset().top) 
},500); 
İlgili konular