سؤال

أود تحقيق ما يلي:

  • على تحميل الصفحة الرئيسية ، عرض مربع العرض
  • ضمن مربع مشروط ، عرض نموذجًا مع خانة اختيار إلزامية واحدة
  • عند التحقق من خانة الاختيار ، اضغط على إرسال وأغلق مربع الوسائط ، انتقل إلى الصفحة الرئيسية
  • تذكر تفضيل علامة مربع الاختيار باستخدام ملف تعريف الارتباط
  • على المستخدمين إلى الصفحة الرئيسية ، إذا قاموا بفحص خانة الاختيار ، فلن يتم عرض المربع الوسيط

لقد وصلت إلى مكان ما مع هذا:

http://dev.iceburg.net/jquery/jqmodal

في ذلك ، يمكنني الحصول على مربع مشروط مع عرض الصفحة ، لكن لا يمكنني معرفة كيفية الحصول على النموذج لجعل مربع الاختيار إلزاميًا وإغلاق المربع. أنا أيضًا لا أعرف من أين أبدأ عند إعداد ملف تعريف الارتباط.

إن أي مؤشرات محل تقدير كبير.

شكرًا

تحرير: لتضمين الكود:

index.html - لعرض مربع مشروط في تحميل الصفحة

$().ready(function() {
  $('#ex2').jqm({modal: 'true', ajax: '2.html', trigger: 'a.ex2trigger' });

    setTimeout($('#ex2').jqmShow(),2000); 

});

2.html - محتوى مربع مشروط محمل عبر Ajax

function validate(frm) {
        if (frm.checkbox.checked==false)
    {
        alert("Please agree to our Terms and Conditions.");
        return false;
    }
}


<form action="" method="POST" onSubmit="return validate(form);" name="form">
<input type="checkbox" name="checkbox" id="checkbox" value="1">&nbsp;I hereby agree to all Terms and Conditions</a>
<input type="submit" value="Submit">
</form>
هل كانت مفيدة؟

المحلول

قم بتحميل المكون الإضافي لملفات تعريف الارتباط jQuery للسماح بتعيين/قراءة ملفات تعريف الارتباط: http://plugins.jquery.com/project/cookieثم .. شيء مثل هذا أدناه. لم يخبر ، لكنك تحصل على الفكرة

index.html:

$().ready(function() {
    if (!$.cookie('agreed_to_terms'))
    {
        $('#ex2').jqm({modal: 'true', ajax: '2.html', trigger: 'a.ex2trigger' });
        $('#ex2').jqmShow();    
    }
});

2.html:

$().ready(function()
{
    $('#agreeFrm').submit(function(e)
    {
        e.preventDefault();

        if ($(this).find('input[name=checkbox]').is(':checked'))
        {
            $.cookie('agreed_to_terms', '1', { path: '/', expires: 999999 });
            $('#ex2').jqmHide(); 
        }
    });
});

<form id="agreeFrm" action="" method="POST" name="form">
<input type="checkbox" name="checkbox" id="checkbox" value="1">&nbsp;I hereby agree to all Terms and Conditions</a>
<input type="submit" value="Submit">
</form>

نصائح أخرى

لقد استخدمت مكونًا إضافيًا jQuery منذ فترة طويلة يسمى SimpleModal

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

جميع المعلومات والعروض التوضيحية على الصفحة الرئيسية البسيطة

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

function confirm(msg,callback) {
  $('#confirm')
    .jqmShow()
    .find('p.jqmConfirmMsg')
      .html(msg)
    .end()
    .find(':submit:visible')
      .click(function(){
        if(this.value == 'Proceed'){
           $.cookie("agreed_to_terms", '1', { expires : 1, path: '/' }); //set cookie, expires in 365 days
           (typeof callback == 'string') ?
            window.location.href = callback :
            callback();
        }
        $('#confirm').jqmHide();
      });
}


$().ready(function() {
  $('#confirm').jqm({overlay: 88, modal: 'true', trigger: false});

  // trigger a confirm whenever links of class alert are pressed.
  $('a.confirm').click(function() { 
    if ($.cookie('agreed_to_terms') == '1'){window.location.href = callback =
            callback()
       //they already have cookie set
    }else{
       confirm('About to visit: '+this.href+' !',this.href); 
    }
    return false;
  });
});// JavaScript Document
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top