2015-10-08 34 views
8

Bir giriş sayfası ile bir web sayfası oluşturmaya çalışıyorum. Kullanıcı ilk kez giriş yaptığında, kullanıcı adı ve şifre tarayıcı tarafından kaydedilecek, eğer "Giriş Yap" yazıyorsa. İkinci kez oturum açtığında, tarayıcı formu otomatik olarak doldurur ve sayfayla etkileşimde bulunmasına gerek kalmadan onu kaydedebilirim.Oturum açma formunu otomatik algılama algıla

Sorun şu ki, parola giriş formundan alamıyorum. Ben açıkça görebilirsiniz

$(document).ready(setTimeout(function() { 
    loginForm.form.submit(function(e) { // I don't have a onsubmit action defined on the login form 
    console.log("Submit"); 
    checkLogin(); // This function should get the username and password value and makes a credential check but I cant get the password here 
    }); 
    var username = $(".login-form__username").val(); 
    var password = $(".login-form__password").val(); // This always is "", an empty string! 
    if (username) { // If the username is set we assume its an autofill 
    console.log("autofilled"); 
    loginForm.form.submit(); // I manually fire the submit event when the browser autofills the username and password field 
    } 
}, 100)); 

kullanıcı adı ve parola forma doldurulur ki, ama bir türlü şifreyi uyuyamıyrom: kodumu bir göz atın. Her şey iyi gider Eğer formun gönder düğmesine el ile tıklarsam. Bu elbette checkLogin();'u tetikleyecek ve şifreyi buradan alabiliyorum. Ancak olayı, belge hazır olayından sonra manuel olarak tetiklerse işe yaramaz.

Bunu nasıl düzelteceğini bilen var mı, yoksa bu neden olur?

Teşekkür David

Sadece bu sorun yalnızca Mac için Chrome göründüğünü, anladım

DÜZENLEME, bu Windows için veFirefox'ta Chrome'da bir cazibe gibi çalışır. Bu, Safari'de çalışmıyor çünkü giriş yapmak istediğiniz kullanıcıyı seçmeniz gerekiyor.

Ayrıca ben de odak değil URL Bar veya refreshButton

+0

Form koyun Can Sayfa ilk olarak yüklenir, kullanıcı formu gönderdiğinde değil. – Barmar

+0

'loginForm.username.val()' nedir? – lshettyl

+0

@Barmar Bu iki satır, tarayıcının formu otomatik doldurup doldurmadığını doğrulamak içindir. Dolayısıyla, kullanıcı adları değeri boş değilse, gönderim etkinliğini tetikler. Sorumu düzenleyeceğim –

cevap

1

"kayıtlı kal" ve tarayıcılar Otomatik Doldurma iki çift vardır üzerinde, Web itselfe ayarlanması gerektiğini, anladım ayakkabılar. "Oturum açmada kal", normalde geçerli kullanıcı bilgilerini içeren bir çerez veya yerel bir mağaza tarafından uygulanır. Sayfanızda çalışan bir komut dosyası bunu kontrol eder ve kullanıcıyı oturum açar veya giriş formuna gönderir.

Otomatik doldurma, kullanıcının kimlik bilgilerini tarayıcıda depolaması istenen bir tarayıcı özelliğidir. Depolanan bir şey varsa javascript ile bilmiyorsunuz. Ancak, girdiğiniz içeriğin uzunluğunu kontrol etmeyi deneyebilir ve körü körüne gönderebilirsiniz. Çalışıyorsa kimlik bilgileri doğruydu.

+0

Yapmaya çalıştığı şey bu gibi görünüyor. Kullanıcı adı alanının zaten doldurulup doldurulmadığını kontrol eder. – Barmar

+0

@localghost Evet, yaptığım şey bu. Tarayıcımdan verilen kimlik bilgileriyle giriş yapmam isteniyorsa, formumda bunları doldurur. Kimlik bilgileri yanlışsa kullanıcıyı bilgilendiririm. Çerezleri kullanamıyorum çünkü bu web sitesi küçük, özel tasarlanmış bir Sunucu üzerinde çalışıyor. Ve onun için kurabiye yapması kolay değil. –

-1

Form kullanıcı adı ve Tarayıcı

localStorage.setItem("username", "Danyial.com"); 
localStorage.setItem("password", "1234567901"); 

Of Yerel Depolama Şifrenizi Mağaza Ve değer al Ve zaman `password`` username` ayarlama ve konum

var username =localStorage.getItem("username"); 
    var password =localStorage.getItem("password"); 
    $(".login-form__username").val(username); 
    $(".login-form__password").val(password); 
İlgili konular