2012-03-16 95 views
0

如果用户选择了多个COP1000,并在另一个实例中提醒用户他们是否选择了多个COP 2830,我将如何提醒用户。现在它会通知用户是否选择了不止一个班。使用jQuery获取元素的HTML标签属性

<script type="text/javascript" charset="utf-8"> 
var p = 0; 
$(document).ready(function() { 
    $('input:checkbox').click(function() { 
     var COP1000 = $(this).attr('data'); 
     if ($('input:checkbox:is_checked').attr()) { 
      p++; 
     } 
     if (p >= 2) { 
      alert('You can only select this class once'); 
      return false; 
     } 
    }); 
}); 
</script> 

下面是用数据作为类

<input name="class[]" data="COP1000" value="<tr><td>COP1000 <td>8:00AM-9:00AM 
</td><td>MWF </td><td>Sanford </td><td>3</td></tr>" type="checkbox" class="auto- 
style88"/> 
<input name="class[]" data="COP1000" value="<tr><td>COP1000 <td>11:30AM-12:00PM 
</td><td>TTH </td><td>Altamonte </td><td>3</td></tr>" type="checkbox" class="auto- 
style88" /> 

<input name="class[]" data="COP2830" value="<tr><td>COP2830 <td>11:00AM-12:00PM 
</td><td>MWF </td><td>Sanford </td><td>3</td></tr>" type="checkbox" class="auto- 
style88"/> 
<input name="class[]" data="COP2830" value="<tr><td>COP2830 <td>6:00PM-8:45PM 
</td><td>T </td><td>Altamonte </td><td>3</td></tr>" type="checkbox" class="auto- 
style88"/> 

回答

1

这应该工作:

$(document).ready(function() { 
    $('input:checkbox').click(function() { 

     var COP1000Counter = 0; 
     var COP2830Counter = 0; 


     $('input:checkbox:checked').each(function(){ 
      if($(this).attr('data') == "COP1000") 
      { 
       COP1000Counter++; 
      } else if ($(this).attr('data') == "COP2830"){ 
       COP2830Counter++; 
      } 
     }); 

     if (COP1000Counter > 1 || COP2830Counter > 1) { 
      alert('You can only select this class once'); 
      return false; 
     } 
    }); 
}); 

通过增加更多的柜台或如果其他号码,你可以与所有类和允许出现次数的数量起到

Fiddle

+0

谢谢你许多! – SilverNightaFall 2012-03-16 09:53:40

+0

@ user2134 np,很高兴帮助^^ – Frederiek 2012-03-16 09:58:44

0

在这里你去的名称复选框,选中此fiddle出来。

虽然我觉得我的解决方案很粗糙,仍然可以改进。 但这是一个开始。

希望它有帮助。 :)