如果选中一个单选按钮,则隐藏

时间:2014-04-10 21:05:48

标签: javascript jquery html radio-button onchange

我正在尝试构建一个包含顶部12中带有两个值的单选按钮的表单。如果选中了值为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,我在这里尝试了不同的答案,但它们不起作用。

我做错了什么?

2 个答案:

答案 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"); }

 });