Struts2:标签问题

时间:2013-05-22 12:32:33

标签: struts2 label section508

我们需要根据条件只显示其中一个标签。这是通过Javascript完成的。这工作正常,但问题是我们得到508兼容错误说1表单元素有2个标签。问题在于表格中的“for”。删除它也会显示508错误。我厌倦了将第二个标签更改为for =“org.dateOfReg”,但仍然相同。有没有办法只有一个标签,并从JavaScript动态传递“for”和“name”值?或者还有其他选择吗?请帮忙。欣赏它很多。

    <tr id="showDates">
       <td id="TypeDate1"><s:label for="dateOfReg" name="dateofReg" value="Date of Interest" /><span class="required" >*</span> :</td>  
       <td id="TypeDate2"><s:label for="dateOfReg" name="dateofReg" value="Date of Completion" /><span class="required" >*</span> :</td>                                     
      <td id="typeDatePick">
        <sj:datepicker showButtonPanel="true" id="dateOfReg" name="org.dateOfReg" displayFormat="mm/dd/yy" label="Date of Interest" changeMonth="true" changeYear="true" size="7"/>
       </td>
  </tr>

由于

哈利

1 个答案:

答案 0 :(得分:0)

您可以采取以下措施来解决此问题。只需拥有一个标签,并使用JavaScript更改其innerHTml,而不是隐藏标签。

<tr id="showDates">
    <td id="TypeDateLabel"><s:label for="dateOfReg" name="dateofReg" value="Date of Interest" /><span class="required" >*</span> :</td>  
    <td id="typeDatePick">
        <sj:datepicker showButtonPanel="true" id="dateOfReg" name="org.dateOfReg" displayFormat="mm/dd/yy" label="Date of Interest" changeMonth="true" changeYear="true" size="7"/>
    </td>
</tr>
<script language="javascript">
    function TriggerToChangeLabel(triggerCondition)
    {
        if (triggerCondition)
            $("dateOfReg").innerHtml = "Date of Interest";
        else
            $("dateOfReg").innerHtml = "Date of Completion";
    }
</script>

但请记住,即使它使代码508符合要求;动态更改标签文本违背了可访问性的精神。实现相同的更好方法是拥有两个日期字段(“感兴趣的日期”和“完成日期”)。提交后,根据您更改标签的条件,在其中一个字段上强制执行“必需”编辑。