2012-11-27 17 views
9

हम में से अधिकांश जो AJAX के साथ संयुक्त रूपों का उपयोग करते हैं, शायद यह देखते हैं कि उपयोगकर्ता द्वारा सबमिट किया गया इनपुट बाद के सत्रों में ब्राउज़र द्वारा सहेजा/सुझाव नहीं दिया जाता है। जब 'साइन इन' पृष्ठों की बात आती है तो यह एक गिरावट है। ब्राउज़र आमतौर पर उपयोगकर्ता नाम/पासवर्ड को सहेजने की पेशकश करता है, जो बहुत आसान है, फिर भी एक AJAX फॉर्म सबमिट के साथ .... अच्छा, आप जानते हैं, ऐसा नहीं होता है।मानक फॉर्म जमा करें बनाम अजाक्स फॉर्म सबमिट करें - ब्राउज़र ऑटो सेव/उपयोगकर्ता इनपुट

मैंने इस प्रश्न को दो बार देखा है और अभी भी कोई जवाब नहीं है। यह पूछे जाने के लगभग 9 महीने हो गए हैं, और मुझे पता है कि यहां बहुत सारे स्मार्ट लोग हैं। तो .... मैंने इस सवाल को पुनर्जीवित करने का फैसला किया है।

हम इसे हल करने के लिए क्या कर सकते हैं? क्या हम किसी भी तरह ब्राउज़र को चालित कर सकते हैं?

मैं इस पर आगे और आगे काम करने के लिए तैयार हूं क्योंकि मुझे पता है कि हम सभी का उपयोग करने के लिए एक अच्छा समाधान होना अच्छा होगा।

अंतिम समाधान slashingweaponसे जवाब पर आधारित

एचटीएमएल (धन्यवाद मैन!) - प्रस्तुत करने के लिए, कोई रूप नहीं 'कार्रवाई' या 'विधि' के साथ-साथ, केवल ajax एक कस्टम बटन का उपयोग करना

<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

आप अपने फॉर्म कैसे सबमिट कर रहे हैं? फॉर्म के 'सबमिट' ईवेंट के लिए बाध्यकारी और usig AJAX मेरे लिए काम करता है ... –

+0

@ JanHančič मैं फॉर्म से डेटा को पकड़ने और AJAX के माध्यम से पोस्ट करने के लिए serialize का उपयोग कर रहा हूं। मैं फॉर्म के लिए 'विधि' या 'कार्रवाई' का उपयोग नहीं कर रहा हूं क्योंकि पृष्ठ को पुनः लोड नहीं किया जाना चाहिए या किसी दूसरे पृष्ठ पर जाना चाहिए। रूप संक्षेप में हैं, केवल इनपुट को कैप्चर करने के लिए उपयोग किए जाते हैं, और अजाक्स का उपयोग डेटा को PHP पर पोस्ट करने और परिणामों को गतिशील रूप से वापस करने के लिए किया जाता है। – VIDesignz

+0

मुझे लगता है कि जन क्या पूछ रहा था, फॉर्म सबमिशन इंगित करने के लिए आप किस घटना का उपयोग कर रहे हैं? क्या आप एक सबमिट घटना का उपयोग कर रहे हैं? या एक बटन घटना पर क्लिक करें? – slashingweapon

उत्तर

8

जब सबमिट करने का कोई भी बटन क्लिक किया जाता है, तो संलग्न फॉर्म सबमिट किया जाता है। आप बटन के क्लिक ईवेंट की बजाय सबमिट ईवेंट को संभालने का चयन कर सकते हैं।

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

वहाँ आप के लिए एक Fiddle है, भी: यहाँ एक उदाहरण है।

बाद की घटना को पकड़कर, आप सुनिश्चित करेंगे कि कम से कम कुछ ब्राउज़रों को भविष्य के ऑटो-फिल के लिए फॉर्म डेटा स्टोर करने का मौका मिलेगा।

+0

यह समझ में आता है ... क्या इससे कोई फर्क पड़ता है कि मैं सबमिट इनपुट का उपयोग करता हूं या सबमिट बटन का उपयोग करता हूं? मैं इसे तब तक लेता हूं जब तक मैं टाइप = 'सबमिट' का उपयोग कर रहा हूं, मुझे अच्छा होना चाहिए ... सही? मुझे यह भी लगता है कि मैं एक कस्टम बटन का उपयोग कर सकता हूं/सबमिट बटन को ट्रिगर करने के लिए क्लिक कर सकता हूं ... – VIDesignz

+0

मैं इसे बाद में लागू करने और परिणामों को देखने जा रहा हूं। अगर सब ठीक हो जाए तो मैं जवाब स्वीकार करूंगा। और धन्यवाद! – VIDesignz

+0

मुझे नहीं लगता कि इस मामले में इनपुट तत्व और बटन तत्व के बीच कोई वास्तविक अंतर है। – slashingweapon

संबंधित मुद्दे