检查是否在jquery中检查了radiobutton

时间:2015-05-01 09:51:08

标签: jquery html

基本上,当我没有选中标记为Section的复选框时,我正在尝试将disabled属性设置为select节点,如果选中它则应删除该属性。

HTML:

    <label>
        <input type="radio" name="table" value="main_categories" checked>
        Section</label>
    <label>
        <input type="radio" name="table" id="subcat" value="sub_categories">
        Catégorie</label>
    <select id="selectsec">
        <option value="1">Test</option>
    </select>

jQuery的:

$(document).ready(function() {
    $('#subcat').change(function(){
        if (!$('#subcat').is(":checked")) {
            $('#selectsec').attr('disabled','disabled');
        }
        else {
            $('#selectsec').removeAttr('disabled');
        }
    });
});

由于某些原因,这不起作用:(

5 个答案:

答案 0 :(得分:1)

$('input').click(function() {
   if($('#subcat').is(':checked')) {
            $('#selectsec').attr('disabled','disabled'); 
   }
   else {
            $('#selectsec').removeAttr('disabled');
   }
});

DEMO

编辑:如果您在页面上选择了其他单选按钮,它也会起作用。将您的单选按钮放入div并更改

$('input').click(function()

$('#idOfyouDiv').click(function()

答案 1 :(得分:1)

您的活动不会在取消选择时启动,您需要将活动应用于所有单选按钮(我们可以使用您的name属性):

DEMO

$('input:radio[name=table]').change(function() {
    if (!$('#subcat').is(":checked")) {
        $('#selectsec').attr('disabled','disabled');
    }
    else {
        $('#selectsec').removeAttr('disabled');
    }
});

答案 2 :(得分:1)

问题是change事件在取消检查无线电输入时没有触发;因此,您必须将change事件处理程序绑定到<input />元素组,并检查this是否包含您要查看的元素的id ,例如:

&#13;
&#13;
$(document).ready(function() {
  // binding the change event-handler to all <input> elements
  // whose type is 'radio' and whose name is 'table':
  $('input[type=radio][name=table]').on('change', function() {
    // this will be the <input> that *is* checked, so
    // we test whether subcat is checked by checking the id
    // of this changed <input> element:
    var subcatChecked = this.id === 'subcat';

    // setting the disabled property of the <select> element
    // to true (when subcat is not checked) or false (when
    // subcat is checked):
    $('#selectsec').prop('disabled', !subcatChecked);
  });
// triggering the change event-handler on page-load/document-ready:
}).filter('#subcat').change();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>
  <input type="radio" name="table" value="main_categories" checked>Section
</label>
<label>
  <input type="radio" name="table" id="subcat" value="sub_categories">Catégorie
</label>
<select id="selectsec">
  <option value="1">Test</option>
</select>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

试试这个:

if (!$('input[name=table]:checked').val() ) 
{
alert("Not Checked");
}

答案 4 :(得分:0)

$(document).ready(function() {
    var checkOpt = function(){
        if ($('[name$=table]:checked').val() == 'main_categories') {
            $('#selectsec').attr('disabled','disabled');
        }
        else {
            $('#selectsec').removeAttr('disabled');
        }
    };
    $('[name$=table]').change(checkOpt);
    checkOpt();
});

小提琴:http://jsfiddle.net/bkdrhvk6/1/

注意:这也可确保在首次加载页面时正确启用/禁用选择。