متصفح الإكمال التلقائي / شكل حفظها لا تعمل في طلب اياكس

StackOverflow https://stackoverflow.com/questions/1622628

سؤال

ومن الصعب حقا للبحث في أي مجموعة من الكلمات الرئيسية في محرك البحث عن هذا لأنه يستخدمها معظم المطور شعبية يريد الإكمال التلقائي مخصصة عن طريق اياكس.

ومعظم البحث المطور عن الإكمال التلقائي مخصصة للحصول على تنجم عن ديسيبل من اياكس أو حول كيفية تعطيل الإكمال التلقائي متصفح نظرا لأسباب أمنية أو أنها wantted استخدام الموسع الإكمال التلقائي آخر.

ولكن أنا لا أتحدث عن الإكمال التلقائي. أنا العثور على نحو بسيط الإكمال التلقائي الطبيعي المتصفح أو متصفح حفظ النموذج إما IE أو FF التي سوف تعمل مثل اختيار القائمة المنسدلة مؤخرا خلال ملء النص في مربع النص.

ووبسيطة وطبيعية ملء النموذج مثل اسم المستخدم وكلمة المرور في نموذج تسجيل دخول. بعد شكل المقدمة (منصب نموذج البيانات) المتصفح سيوفر على الإكمال التلقائي أو الحدث في FF ستطلب لإنقاذ جنبا إلى جنب مع كلمة السر.

والآن، والتفكير في الدخول المقدمة عن طريق اياكس. بيانات النموذج لا يتم حفظ تلقائيا إما عن طريق IE أو FF ببساطة لأن النموذج لم ترسل عن طريق أسلوب آخر. وأنا متأكد من ذلك لأن من اياكس مقابل أسلوب آخر.

وCMS مثل دوتنت باستخدام هذه الطريقة ومن الصعب حقا بالنسبة لي لكتابة اسم المستخدم وكلمة المرور لمدة 5 تسجيل دخول المستخدم لأغراض التنمية، الحدث أريد أن السماح مستخدم حفظ بيانات النموذج الخاصة بهم في المتصفح دون أي عرف أو الموسع. بواسطة مثال آخر، يمكن للمستخدم رؤية واستخدام نفس البريد الإلكتروني لملء استمارة أي بريد إلكتروني عبر موقع على شبكة الإنترنت أو المجال.

وكيف إلى حل مع هذا؟ هل لديك اقتراح ما هي الكلمات الرئيسية هو أكثر ملاءمة للبحث؟

وCallMeLaNN

هل كانت مفيدة؟

المحلول

وأواجه نفس المشكلة. وكنت قادرا على حلها لفايرفوكس عن طريق إضافة IFRAME مخفي أن أقدم عبر جافا سكريبت قبل القيام منصبي AJAX. ما زلت لم يتم العثور على أي شيء يعمل في كروم / IE.

نصائح أخرى

ولقد واجهت نفس المشكلة وبحثت قليلا. أعتقد أن الحل أدناه هو أنسب طريقة لحل هذا إذا كان لديك صفحة تسجيل الدخول. وإذا نظرنا إلى تسجيل الدخول المقدمة عن طريق اياكس، فإن أيا من المتصفحات يتذكر أو ميزة عرض autocomplate لاسم المستخدم وكلمة المرور المجال يسأل بالإضافة إلى تذكر وثائق التفويض. ولكن إذا كنت تستخدم ميزة جافا سكريبت تقديم (ربما انها ليست متوافقة مع الإصدارات القديمة من المتصفحات)، وجميع المتصفحات يعرض عليك حفظ اسم المستخدم وكلمة المرور إلا IE. ولكني وجدت جافا سكريبت أخرى صعبة للIE لجعلها تقدم لحفظ اسم المستخدم وكلمة المرور.

في صفحة تسجيل الدخول بلدي، لقد تعاملت مع اسم المستخدم وكلمة المرور وإرسالها إلى جانب الخادم حسب الطلب اياكس وإذا نجح في تسجيل الدخول، قدمت النموذج عن طريق الأسلوب أدناه خلاف ذلك قد ثبت مربع تنبيه للمستخدم أن تسجيل الدخول وفشل.

يرجى التحقق من الرابط أدناه:

<اقتباس فقرة>   

[تحرير]: يتم تقسيم الارتباط

وهناك صفحة محددة حول هذا الموضوع في صفحة مرتبط، لا استطيع ان اعطيكم رابط آخر بسبب سمعتي. الرجاء البحث عن الاقتباس أدناه في الصفحة:

<اقتباس فقرة>   

ونظرة على صفحة محددة.

وبطبيعة الحال، لا يصلح هذا الأسلوب إذا كان لديك قسم تسجيل الدخول في الصفحة الافتراضية بسبب شكل المقدمة. هذا يسبب الخفقان الصفحة. وأتساءل عما اذا كان هناك من لديه فكرة عن ذلك؟

وهنا بعض التعليمات البرمجية أونوبستروسيفي شبيبة مسج من شأنها تقديم نموذج على حد سواء عبر اياكس ($ .post طريقة) لسيناريو الخلفية الحقيقية وأيضا لسيناريو وهمية عبر الإطار من، وبالتالي فإن المتصفح حفظ البيانات المقدمة عن تكملة لاحقة .

وهذا هو العمل العظيم تحت الكروم. أي ردود فعل أكثر من موضع ترحيب!

var  formframesindex = 0;
function onSubmitAjax(evt){
    var $form = $(this);
    var framesubmitting = $form.hasClass('framesubmitting');
    var action = $form.attr('action');
    var original_action = action;

    if(!framesubmitting){
        $.post(action,$form.serialize()+"&ajax=1", function(responseText,message,request){
            formResponseHandler(responseText);
        }, "json");


        formframesindex++;
        var formframe = $("<iframe name='formframe_id_"+(formframesindex)+"' id='formframe_id_"+(formframesindex)+"' class='formframe' src='/fakeformreceiver.php'></iframe>");
        $('body').append(formframe);
        var target = $form.attr('target');
        $form.data('originaltarget',target);
        $form.data('originalaction',original_action);
        $form.attr('target','formframe_id_'+formframesindex);
        $form.attr('action','/fakeformreceiver.php');
        $form.addClass('framesubmitting');
        $form.submit();

    } else {
        var current_target = $form.attr('target');
        var original_action = $form.data('originalaction');
        var original_target = $form.data('originaltarget');
        var $frame = $('#'+current_target);
        setTimeout(function(){
            if($frame && $frame.length){
                $frame.remove();
            }
            $form.attr('action',original_action);
            $form.attr('target',original_target);
            $form.removeClass('framesubmitting');
        },100);
    }
    return framesubmitting;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top