2012-11-27 11 views
9

Ajax ile birlikte kullanılan formları kullanmamızın birçoğu, muhtemelen kullanıcı tarafından sunulan girdinin daha sonraki oturumlarda tarayıcı tarafından kaydedilmediğini/önerilmediğini fark etti. Bu, sayfalarda 'oturum açma' söz konusu olduğunda bir düşüştür. Tarayıcı genellikle çok kullanışlı olan kullanıcı adı/parola kaydetmeyi önerir, ancak ajax formu gönderir .... iyi, bilirsin, bu sadece olmaz.Standart Form Gönderme - Ajax Formu Gönder - Tarayıcı Otomatik Kaydet/Kullanıcı Girişi öner

Bu soruyu burada iki kez gördüm ve hala cevap yok. Sorulduğu tarihten yaklaşık 9 ay geçti ve burada çok fazla akıllı insan olduğunu biliyorum. Yani .... Bu soruyu yeniden diriltmeye karar verdim.

Bunu çözmek için ne yapabiliriz? Tarayıcıyı bir şekilde kandırabilir miyiz?

Bu konuda tekrar tekrar çalışmaya hazırım, çünkü hepimizin kullanabileceği bir çalışma çözümüne sahip olmanın güzel olacağını biliyorum.

Nihai Çözüm slashingweapon cevabını kapalı tabanlı

HTML (Teşekkürler Man!) - sadece ajax, hiçbir şekilde 'eylemi' veya 'yöntemiyle' ile birlikte göndermek için özel bir düğme kullanma

<form id="signin"> 

    <label for="username">Username</label> 
    <input type="text" id="username" name="username" /> 

    <label for="password">Password</label> 
    <input type="password" id="password" name="password" /> 

    //Custom Styled Submit Button 
    <img id="submit" class="form_button" src="btn_txt_sign_in.png" alt="Sign In" tabindex="3" /> 

    //Hidden Standard Form Submit Button 
    <input id='trigger' type='submit' style='display:none;' /> 

</form> 

JQuery

// Bind a click to the Custom Submit Button 
$('#submit').click(function() { 
    //Trigger a Click on the Hidden Standard Form Submit 
    $('#trigger').click(); 
}); 

// Detect when the form attempts to be submitted 
$('#signin').submit(function(e){ 
    // Prevent Standard Form Submission 
    e.preventDefault(); 
    // Perform Function containing Ajax Submission instead 
    submit_signin(); 
}); 

// Ajax Submission 
function submit_signin() { 
    //My Ajax Call.... 
} 
+0

Formlarınızı nasıl gönderiyorsunuz? Formun 'submit' olayına bağlanması ve usja AJAX benim için çalışıyor ... –

+0

@ JanHančič Formdan veri almak ve ajax ile yayınlamak için serialize kullanıyorum. Sayfanın yeniden yüklenmesi veya başka bir sayfaya gitmemesi gerektiğinden formun kendisi için bir 'yöntem' veya 'eylem' kullanmıyorum. Formlar esas olarak girdi yakalamak için kullanılır ve Ajax verileri bir PHP'ye göndermek ve sonuçları dinamik olarak döndürmek için kullanılır. – VIDesignz

+0

Jan'ın sorduğu şeyin ne olduğunu düşünüyorsun, form gönderimini belirtmek için hangi etkinliği kullanıyorsunuz? Gönderme etkinliği kullanıyor musunuz? Ya da bir düğme tıklama olayı? – slashingweapon

cevap

8

Gönderme düğmesinin herhangi bir düğmesi tıklandığında, ilişikteki form gönderilir. Gönderilen etkinliği, düğmenin tıklama etkinliği yerine işlemeyi seçebilirsiniz. de

$('#demoForm').submit(function(evt) { 
    evt.preventDefault(); 
    var data = $(this).serialize(); 
    alert(data); 
});​ 

sizin için bir Fiddle var: İşte bir örnek.

Daha sonraki olayı yakalayarak, en azından bazı tarayıcıların form verilerini gelecekteki otomatik dolgular için sakladığından emin olursunuz.

+0

Bu mantıklı… Gönderilen girişi mi yoksa gönder düğmesini mi kullanmam sorun olur mu? Tip = 'submit' kullanıyorum sürece iyi alıyorum ... iyi olmalı mıyım? Gönderme düğmesini tetiklemek için özel bir düğmeyi/tıklamayı kullanabileceğimi de varsayalım ... – VIDesignz

+0

Bunu daha sonra uygulayacağım ve sonuçları göreceğim. Her şey yolunda giderse cevabı kabul edeceğim. Ve teşekkür ederim! – VIDesignz

+0

Bu durumda giriş elemanı ile düğme elemanı arasında gerçek bir fark olduğunu düşünmüyorum. – slashingweapon