jquery 当单选按钮被选中时,显示多个div ID和其他单选输入

8ftvxx2r  于 12个月前  发布在  jQuery
关注(0)|答案(2)|浏览(112)

我是一个完整的新手在这里-所以我会尽我所能解释。我有一个表格,我要求用户选择他们最近的城市(无线电输入),如果他们选择“伦敦”从选项,那么我需要3x div ID显示其中包含一些其他无线电输入。我所有的代码都有唯一的ID。
我的问题是,我可以让div显示,但如果你试图选择任何电台选项,它会自动隐藏div,无论你选择什么。
这是我的表单HTML,其中“伦敦”是一个选项(我有自定义单选按钮-因此跨度)

<label class="container" style="line-height: 1.5;">
      <input type="radio" id="NEAREST_CITY1" name="cd_NEAREST_CITY" value="London" initial="@NEAREST_CITY@" readonly="">
      London
      <span class="radioSelect"></span>
    </label><label class="container" style="line-height: 1.5;">
      <input type="radio" id="NEAREST_CITY2" name="cd_NEAREST_CITY" value="Manchester" initial="@NEAREST_CITY@" readonly="">
      Manchester
      <span class="radioSelect"></span>
    </label><label class="container" style="line-height: 1.5;">
      <input type="radio" id="NEAREST_CITY3" name="cd_NEAREST_CITY" value="Edinburgh" initial="@NEAREST_CITY@" readonly="">
      Edinburgh
      <span class="radioSelect"></span>
    </label>

字符串
我的隐藏div是这样的-我不能在1 div Div 1下有这些:

<div id="London1" style="display:none">
<p style="margin: 0px; line-height: 1.5; padding-top: 20px;"><font face="belleza, sans-serif"><font><font style="font-size: 16px;"><b>Let us know your preferred London Location:</b></font></font></font></p>
</div>


第二区:

<div id="London2" style="display:none">
<label class="container" style="line-height: 1.5;">
      <input type="radio" id="PREFERRED_LONDON1" name="cd_PREFERRED_LONDON" value="Air Street" initial="@PREFERRED_LONDON@" readonly="">
      Air Street
      <span class="radioSelect"></span>
    </label><label class="container" style="line-height: 1.5;">
      <input type="radio" id="PREFERRED_LONDON2" name="cd_PREFERRED_LONDON" value="Borough" initial="@PREFERRED_LONDON@" readonly="">
      Borough
      <span class="radioSelect"></span>
    </label>
</div>


第三区:

<div id="London3" style="display:none">
<label class="container" style="line-height: 1.5;">
      <input type="radio" id="PREFERRED_LONDON3" name="cd_PREFERRED_LONDON" value="Guildhall" initial="@PREFERRED_LONDON@" readonly="">
      Guildhall
      <span class="radioSelect"></span>
    </label>
<label class="container" style="line-height: 1.5;">
      <input type="radio" id="PREFERRED_LONDON4" name="cd_PREFERRED_LONDON" value="Knightsbridge" initial="@PREFERRED_LONDON@" readonly="">
      Knightsbridge
      <span class="radioSelect"></span>
    </label>
</div>


然后是JavaScript/jQuery(不确定这是什么TBH -掉进了兔子洞,不记得我在哪里找到了类似的例子)

<script>
$(document).ready(function() {
   $('input[type="radio"]').click(function() {
       if($(this).attr('id') == 'NEAREST_CITY1') {
            $("div[id*=London]").show();           
       }
       else {
            $("div[id*=London]").hide();   
       }
   });
});
</script>

sf6xfgos

sf6xfgos1#

这里是一个清理的版本。我已经改变了事件监听器只听点击的名称=cd_NEAREST_CITY],否则任何点击任何电台将触发切换
注意,我给每个div一个class=“city”,这样就可以一次性隐藏它们。
我还从收音机中删除了无效的只读,并将字体改为样式。

$(function() {
  $('[name=cd_NEAREST_CITY]').on('click', function() {
    $('.city').hide()
    $(`div[id*=${this.value}]`).show();
  });
});

个字符

voase2hg

voase2hg2#

如果你在一个表单密集的网站上工作,我会考虑使用一些免费的开源库来处理像forms.js这样的表单。

body{
background: #eee
}

个字符

相关问题