我认为这很简单,但我无法弄清楚为什么#type2
无法点击。
<input type="radio" id="type1" name="group1" checked>
<input type="radio" id="type2" name="group1">
<input type="text" class="type1">
<input type="text" class="type2" disabled>
<script>
function toggle() {
if ($('#type1').attr('checked', true)) {
$('.type1').attr('disabled', false);
$('.type2').attr('disabled', true);
}
else if ($('#type2').attr('checked', true)) {
$('.type1').attr('disabled', true);
$('.type2').attr('disabled', false);
}
}
$(document).ready(function() {
toggle();
});
</script>
我看不出问题所在。任何帮助都会很棒,谢谢。
答案 0 :(得分:2)
尝试:
function toggle() {
if ($('#type1').is(':checked')) {
$('.type1').attr('disabled', false);
$('.type2').attr('disabled', true);
}
else if ($('#type2').is(':checked')) {
$('.type1').attr('disabled', true);
$('.type2').attr('disabled', false);
}
}
示例: http://jsfiddle.net/andrewwhitaker/z5Wbv/1/
您使用的.attr
版本是将 #type1
的{{1}}属性设置为true。您可以使用is
和:checked
selector来确定是否选中了复选框/单选按钮。
答案 1 :(得分:2)
你使用的是.attr而不是.prop。
.attr用于属性,.prop用于属性。属性=已选中,已选中,已禁用。
文档:http://api.jquery.com/prop/
确定是否选中了复选框
if ( elem.checked )
if ( $(elem).prop("checked") )
if ( $(elem).is(":checked") )
答案 2 :(得分:0)
工作演示** http://jsfiddle.net/YUhFw/
很少有事情需要纠正:)
.is(":checked")
disabled
属性。希望它适合原因:)
<强>码强>
function toggle() {
if ($('#type1').is(':checked')) {
$('.type1').removeAttr('disabled');
$('.type2').attr('disabled', true);
}
else if ($('#type2').is(':checked')) {
$('.type1').attr('disabled', true);
$('.type2').removeAttr('disabled');
}
}
$(document).ready(function() {
$("input[type=radio]").click(function() {
toggle();
});
});
答案 3 :(得分:0)
你没有检查这里的条件。
您设置 which is always true
..
试试这个
if ($('#type1').is(':checked')){
同样使用.prop()
的<{1}} 代替,因为这不是属性,而是单选按钮的属性。
您的代码应如下所示
.attr()