2012-07-30 44 views

回答

1

此代码实际上工作正常,并且可以使用。

这是形式的东西:

<form id="myGame" name="myGame" action="" method="post"> 
<input type="radio" name="checkme" id="checkme" onClick="openTheHouse();" >Open Sesame 
<input name="open_id" id="openid" type=text disabled="disabled"> 
</from> 

和脚本:它实际上是相当冷静,没有在这个脚本复杂。

<script type="text/javascript"> 
function openTheHouse() 
{ 

if(document.myGame.checkme.checked == true) 
{ 
document.myGame.openid.disabled = false ; 
} 

} 
</script>         

这就是它,全部完成。当然,我相信它的作品。

+0

这对于'openid'不起作用,因为它的名字实际上是'open_id'。而且,这不会做相反的事情。尽管OP没有明确要求,但我认为如果它确实会更有意义。单选按钮应该是复选框。所以基本上所有''应该这样做。 – BalusC 2012-07-30 11:43:43

4

基本上是:

$('#some-checkbox').click(function() { 
    $('#some-textfield').prop('disabled', !$(this).is(':checked')); 
}); 

现在,你如何去寻找相应的文本框取决于您的标记。一种方法是给文本框添加一个类,该类是复选框的ID。将其应用于所有的复选框可能是这个样子:

$(':checkbox').click(function() { 
    var box = $(this); 
    $('.' + box.attr('id')).prop('disabled', !box.is(':checked')); 
}); 

否则,文本字段可以由它的位置位于DOM:

<div class="wrapper"> 
    <input type="checkbox"> 
    ... 
    <div> 
     <input type="text" disabled="disabled" /> 
    </div> 
</div> 

然后,您可以这样做:

$(':checkbox').click(function() { 
    var box = $(this); 
    box.closest('.wrapper').find('input[type=text]').prop('disabled', !box.is(':checked')); 
});