2017-09-13 43 views
0

首先,我不是一个真正的Web开发人员,所以请耐心等待。将一个:checked伪类添加到嵌入的mailchimp表格中

我试图在我的网站上嵌入mailchimp注册表单。除非选择了某个单选按钮,否则我想设置一个复选框来保持隐藏状态。

<!-- Begin MailChimp Signup Form --> 
<link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css"> 
<style type="text/css"> 

.reveal{ 
    display: none !important; 
} 

#radio-2:checked ~ .reveal { 
    display: inline; 
} 

</style> 
<div id="mc_embed_signup"> 
<form action="n/a" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> 
    <div id="mc_embed_signup_scroll"> 

<div class="mc-field-group input-group"> 
    <strong>Radio Buttons</strong> 
    <ul> 

<li><input type="radio" id="radio-1" value="Radio 1" name="MMERGE6" id="mce-MMERGE6-0"><label for="mce-MMERGE6-0">Radio 1</label></li> 

<li><input type="radio" id="radio-2" value="Part Time" name="MMERGE6" id="mce-MMERGE6-1"><label for="mce-MMERGE6-1">Part Time</label></li> 

</ul> 
</div> 
<div class="mc-field-group input-group reveal"> 
    <ul> 

<li><input type="checkbox" value="1" name="group[18657][1]" id="mce-group[18657]-18657-0"><label for="mce-group[18657]-18657-0">1</label></li> 

<li><input type="checkbox" value="2" name="group[18657][2]" id="mce-group[18657]-18657-1"><label for="mce-group[18657]-18657-1">2</label></li> 

<li><input type="checkbox" value="4" name="group[18657][4]" id="mce-group[18657]-18657-2"><label for="mce-group[18657]-18657-2">3</label></li> 

<li><input type="checkbox" value="8" name="group[18657][8]" id="mce-group[18657]-18657-3"><label for="mce-group[18657]-18657-3">4</label></li> 

</ul> 

</div> 
    <div id="mce-responses" class="clear"> 
     <div class="response" id="mce-error-response" style="display:none"></div> 
     <div class="response" id="mce-success-response" style="display:none"></div> 
    </div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--> 
    <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_e7f52c90ee3d55370f2c41bac_8ea8200d35" tabindex="-1" value=""></div> 
    <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div> 
    </div> 
</form> 
</div> 
<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[4]='MMERGE4';ftypes[4]='phone';fnames[6]='MMERGE6';ftypes[6]='radio';}(jQuery));var $mcj = jQuery.noConflict(true);</script> 
<!--End mc_embed_signup--> 

我想在这里设置复选框只显示何时第二个单选按钮被选中。

我可以得到:当我写我自己的表单时检查工作,但我似乎无法让它在嵌入式mailchimp表单中工作,我无法弄清楚为什么。有没有人有任何想法?

回答

0

这里有几个问题:

  1. !important规则的样式不能与其他的风格,不包括!important覆盖。您可以将其从第一种样式中移除以解决此问题。

  2. ~兄弟CSS选择器定位元素with the same parent。由于广播和.reveal元素不共享相同的父元素,因此它不会显示.reveal元素。

  3. 单选按钮不应该有两个id属性。当存在多个时,仅设置第二个id

为了让兄弟选择工作,你可以从单选按钮删除<ul><li>元素,和他们之前添加换行符所以他们仍然在不同的行。还把.reveal<div>里面的第一个.mc-field-group一个。这将使单选按钮具有与隐藏元素相同的父项。

下面是更新后的代码是什么样子:

<!-- Begin MailChimp Signup Form --> 
<link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css"> 
<style type="text/css"> 

.reveal { 
    display: none; 
} 

#mce-MMERGE6-1:checked ~ .reveal { 
    display: inline; 
} 

</style> 
<div id="mc_embed_signup"> 
    <form action="n/a" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> 
     <div id="mc_embed_signup_scroll"> 
      <div class="mc-field-group input-group"> 
       <strong>Radio Buttons</strong> 
       <br> 
       <input type="radio" value="Radio 1" name="MMERGE6" id="mce-MMERGE6-0"><label for="mce-MMERGE6-0">Radio 1</label> 
       <br> 
       <input type="radio" value="Part Time" name="MMERGE6" id="mce-MMERGE6-1"><label for="mce-MMERGE6-1">Part Time</label> 
       <div class="reveal"> 
        <ul> 
         <li><input type="checkbox" value="1" name="group[18657][1]" id="mce-group[18657]-18657-0"><label for="mce-group[18657]-18657-0">1</label></li> 
         <li><input type="checkbox" value="2" name="group[18657][2]" id="mce-group[18657]-18657-1"><label for="mce-group[18657]-18657-1">2</label></li> 
         <li><input type="checkbox" value="4" name="group[18657][4]" id="mce-group[18657]-18657-2"><label for="mce-group[18657]-18657-2">3</label></li> 
         <li><input type="checkbox" value="8" name="group[18657][8]" id="mce-group[18657]-18657-3"><label for="mce-group[18657]-18657-3">4</label></li> 
        </ul> 
       </div> 
      </div> 
      <div id="mce-responses" class="clear"> 
       <div class="response" id="mce-error-response" style="display:none"></div> 
       <div class="response" id="mce-success-response" style="display:none"></div> 
      </div> 
      <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--> 
      <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_e7f52c90ee3d55370f2c41bac_8ea8200d35" tabindex="-1" value=""></div> 
      <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div> 
     </div> 
    </form> 
</div> 
<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[4]='MMERGE4';ftypes[4]='phone';fnames[6]='MMERGE6';ftypes[6]='radio';}(jQuery));var $mcj = jQuery.noConflict(true);</script> 
<!--End mc_embed_signup--> 
相关问题