基本上,当我没有选中标记为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');
}
});
});
由于某些原因,这不起作用:(
答案 0 :(得分:1)
$('input').click(function() {
if($('#subcat').is(':checked')) {
$('#selectsec').attr('disabled','disabled');
}
else {
$('#selectsec').removeAttr('disabled');
}
});
编辑:如果您在页面上选择了其他单选按钮,它也会起作用。将您的单选按钮放入div并更改
$('input').click(function()
到
$('#idOfyouDiv').click(function()
答案 1 :(得分:1)
您的活动不会在取消选择时启动,您需要将活动应用于所有单选按钮(我们可以使用您的name
属性):
$('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
,例如:
$(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;
答案 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/
注意:这也可确保在首次加载页面时正确启用/禁用选择。