我正在尝试构建一个包含顶部1
和2
中带有两个值的单选按钮的表单。如果选中了值为1
的单选按钮,我希望隐藏一个带有id
= facebook
的输入框。加载时,没有选中单选按钮。这是我的代码:
$("input[name='accountType']").change(function(){
var radio;
radio = $("input[name='accountType']").val();
if(radio === '1'){
("#facebook").hide();
}
});
这是我的HTML
<input type="text" name="facebook" id="facebook" value="" class="form-control">
<input type="radio" name="accountType" id="accountType-1" value="1" class="icheck" >
<input type="radio" name="accountType" id="accountType-2" value="2" class="icheck" >
我确定它显而易见,但我刚开始使用jQuery,我在这里尝试了不同的答案,但它们不起作用。
我做错了什么?
答案 0 :(得分:3)
这更简单:
$('input[name=accountType]').change(function(){
$('#facebook').toggle(this.value !== '1');
});
Demo。首先,change
事件会在已选中的单选按钮上触发,因此无需再次使用完整选择器查找它 - this
将引用相应的元素,this.value
将为您提供价值。
其次,有一个方便的.toggle
jQuery方法,可用于显示或隐藏元素,具体取决于某些条件(显示它是否真实,如果是假的则隐藏)。在这种情况下,如果this.value
等于&#39; 1&#39;,则需要隐藏元素,这就是我反转支票的原因({{1} }})。
作为旁注,我已删除&#39; accountType&#39;周围的引号。 - 如果属性值(在属性选择器中)是有效的JS标识符,则不需要这些。
答案 1 :(得分:0)
这就是我要做的事情
$('input[name=accountType]').change(function(){
if($('#accountType-1').is(':checked')) { $('#facebook').css('display', "none"); }
});