$("input[name='yesFollowup']").on(element_click, function(e){
if($(this).attr("id") == "yesFollowup"){
$(".phone_number_yes").show();
}else{
$(".phone-number").hide();
}
});
$('input.followUp:checkbox').on('change', function() {
$('input.followUp:checkbox').prop({
'checked': false,
'disabled': false
}).removeClass('active');
$(this).prop({
'checked': true,
'disabled': true
}).addClass('active');
});
input[type=checkbox] {
position: relative;
width: 22px;
height: 22px;
border: 1px solid #fff;
vertical-align: -5px;
color: #fff;
}
input[type=checkbox] {
-webkit-appearance: none;
-moz-appearance: none;
}
[type=checkbox], [type=radio] {
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
margin-left: 8px;
margin-right: 20px;
}
input[type=checkbox]::before {
content: "✔";
position: absolute;
font-size: 1.2em;
right: 0;
top: -0.3em;
color: #ffffff;
visibility: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
.col-sm-2.dealer-item#dealer-item-b.flex-container
.radio-like-checkboxes(data-validation='required').form-check
label(for="yesFollowup")= __('YES')
input#yesFollowup(type="checkbox",name='yesFollowup', value="yes", data-value='phone_number_yes')
.radio-like-checkboxes.form-check
label(for="noFollowup")= __('NO')
input#noFollowup(type="checkbox",name='noFollowup', value="no")
目前,两个复选框都是“可检查的”,但我想一次只选中一个,并在填充另一个时删除另一个。
此外,我不确定如何确保仅在填充“是”框时显示“电话”字段,而在填充“否”框时才隐藏。
答案 0 :(得分:3)
为什么不使用CSS来使用看起来像复选框的单选按钮?
优点是根本不需要代码,因为……单选按钮已经存在排他性行为……所以使用它。没有什么能阻止您使它们看起来像带有选中标记的正方形。
关于电话号码...使用无线电值比较来切换电话输入的显示。
$("[name='call']").on("click",function(){
$(".phone").toggle($(this).val()=="yes");
});
.container{
background:#000;
color:#fff;
height:1.8em;
padding:0.2em;
}
input[type='radio'] {
position: relative;
width: 22px;
height: 22px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
margin-left: 8px;
margin-right: 20px;
opacity:1;
}
/* The square box */
input[type='radio']:before {
content: "";
position: absolute;
font-size: 1.2em;
right: 0;
top: 0;
width:1.3em;
height:1.3em;
color: #888;
border:1.2px solid black;
border-radius:3px;
background:#fff;
}
/* The checkmark */
input[type='radio']:checked:after {
content: "✔";
position: absolute;
font-size: 1.6em;
right: 0.15em;
top: -0.2em;
color: #000;
}
.phone{
transform: translateY(-0.4em);
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
Yes <input type="radio" name="call" value="yes"> No<input type="radio" name="call" value="no"> <input type="text" class="phone" name="phone" placeholder="Your phone #">
</div>