javascript禁用未选中的复选框

时间:2011-11-28 05:29:05

标签: javascript select

我有一个n号复选框,如果我勾选了一个复选框,则必须选中复选框的所有相似值,另一个复选框应该被禁用。

任何人都可以帮我解决问题

我有一个用于选择类似值选择的java脚本

<script type='text/javascript'>
(function()
{
 var allInps = document.getElementsByTagName('input'), allCb = [];

 for( var i in allInps )
  if( allInps[ i ].type === 'checkbox' )
  {
   allCb.push( allInps[ i ] );   
   allInps[ i ].onclick = likeMe;
  }

 function likeMe()
 {
  for( var i in allCb )
   if( allCb[ i ] !== this && allCb[ i ].value === this.value )
    allCb[ i ].checked = this.checked;  
 }  

})();
</script>

请帮助!

1 个答案:

答案 0 :(得分:0)

不需要这些行:      (功能()     { 这一行:     })();

要禁用复选框,checkbox.disabled = true; (其中复选框是您要禁用的元素)

在你的likeMe函数中,添加一个else语句,如果它们不相似,则禁用该复选框。

我认为这应该有效。以下是您的代码应该如何:

<script type='text/javascript'>
(function()
{
 var allInps = document.getElementsByTagName('input'), allCb = [];

 for( var i in allInps )
  if( allInps[ i ].type === 'checkbox' )
  {
   allCb.push( allInps[ i ] );   
   allInps[ i ].onclick = likeMe;
  }

 function likeMe()
 {
  for(var i in allCb )
   if( allCb[ i ] !== this && allCb[ i ].id === this.id )
    allCb[ i ].checked = this.checked;
    else if (allCb[ i ].checked !== this.checked && allCb[ i ].id !== this.id )
    { 
     allCb[ i ].setAttribute('disabled',true);
   } 
   else { 
     allCb[ i ].removeAttribute('disabled');
   }
 }

})();

我认为它会解决它。