我有一个单选按钮(学费),一旦点击,选项的附加单选按钮将显示文本字段。为什么单击其他按钮(完全学费或非全部学费)后它将关闭。所以发生了什么事?我无法输入文本字段。谁能告诉我它为什么关闭?
$( document ).ready(function() {
$('.sub_list').css('display','none');
$('input[type=radio]').change(function() {
$('.sub_list').css('display','none');
$('#'+this.value).css('display','block');
console.log(this.value);
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<input id="test2" name="ship_need" type="radio" value="Tuition_fee"> Tution<br>
<div id="Tuition_fee" class="sub_list">
<ul>
<li>Tuition Fee</li>
<input name="Full" type="radio" value="Full"> Full Tuition Fee <br>
<input name="Not_Full" type="radio" value="Not_Full"> Not Full Tution Fee
</ul>
<div class="col-lg-6 form-group">
<label class="control-label">Money:</label>
<input class="form-control" name="ship_money2" type="text">
</div>
<div class="col-lg-6 form-group">
<label class="control-label">
Location:
</label>
<select class="form-control" name="ship_payment">
<option value="Monthly">Monthly</option>
<option value="Quarterly">Quarterly</option>
<option value="6 Month">6 Month</option>
</select>
</div>
</div>
答案 0 :(得分:0)
这是因为$('input[type=radio]').change(/* ... */)
将更改事件监听器添加到所有单选按钮,即使是.sub_list
$('input[name=ship_need]').change(/* ... */)
可能是您要添加更改事件侦听器的位置。
答案 1 :(得分:0)
在change
的{{1}}活动中,你正在做
input[type=radio]
在第一个单选按钮(ID为#34; test2&#34;)时,$('.sub_list').css('display', 'none'); //[1]
$('#'+this.value).css('display','block'); //[2]
为&#34; Tuition_fee&#34;。
因此value
设置为$(".sub_list")
(在display: none
上)。
然后,[1]
设置为$("#Tuition_fee")
(在display: block
上;它是相同的元素,它发生得太快,所以它不明显)
但是,在您第二次单击单选按钮时(例如,&#34;完全学费和#34;),该值为[2]
。
因此,Full
再次设置为.sub_list
(在display: none
上)。
然后[1]
(不存在)设置为#Full
(在display: block
上)。没有ID为#34; Full&#34;的元素,因此容器[2]
保持为<div id="Tuition_fee" class="sub_list">
。