我有两个html单选按钮和textarea。我基本上想要在选择是时启用textarea,否则禁用它。
<input type='radio' id='comment' name='comment' value='Yes'>Yes
<input type='radio' id='comment' name='comment' value='No' checked="checked">No
<textarea id='writehere' name='writehere' cols='25' rows='2'></textarea>
下面是我的jQuery。这些命令只有在我将其重新设置为值时才会发生。但我希望每次更改“注释”时都会执行这些命令,无论是或否。
$('#writehere').attr('disabled','disabled');
$('#comment').change(function(){
if ($('#comment').val() == 'No')
$('#writehere').attr('disabled','disabled');
if ($('#comment').val() == 'Yes')
$('#writehere').removeAttr('disabled');
});
答案 0 :(得分:2)
你有2个id与你的问题相同。
这不是W3C有效的,在这种情况下jQuery只会继续第一个id。
答案 1 :(得分:2)
这是jQuery's change的正确用法。但是,您违反了HTML规则,因为您有两个具有相同ID的元素。也许你可以改成它:
<input type='radio' class='comment-handler' name='comment' value='Yes'>Yes
<input type='radio' class='comment-handler' name='comment' value='No' checked="checked">No
$('.comment-handler').change(function(){
if ($('.comment-handler').val() == 'No')
$('#writehere').attr('disabled','disabled');
if ($('.comment-handler').val() == 'Yes')
$('#writehere').removeAttr('disabled');
});
答案 2 :(得分:1)
这是你应该得到正确值的方法:
$('input:radio[name=comment]:checked').val()
由于多个元素具有相同的类和名称,因此您应使用:checked
从正确的元素中获取val()
。