清洁和可访问其他选项(复选框和文本框)

时间:2010-03-29 18:19:19

标签: javascript html forms accessibility

当我有一组复选框或单选按钮时,我经常需要选择其他。此复选框或单选按钮通常伴有一个文本框,用户应填写此其他的内容。

你通常如何处理这个设置?你用什么样的标记?您的验证需要什么?你有没有使用java脚本?例如:

  • 如何使表格可访问?您是否使用以及如何使用标签标签,例如。
  • 您是否以任何方式使用某些javascript连接复选框和文本框?例如,选中复选框后是否激活文本框?如果填写或清除了文本框,您是否自动选中或取消选中该复选框?
  • 如果选中复选框但未填写文本框,或者文本框已填写但未选中复选框,是否让验证失败并显示错误消息?或者你只是认为它没有填写而没有检查?

非常不确定如何最好地处理这个问题,所以任何建议和例子都非常受欢迎c“,)

2 个答案:

答案 0 :(得分:0)

通常,当我有动态表单时,我会动态插入输入。也就是说,在jQuery的情况下,我将使用.append('<input...')或其他类似函数来实际插入元素,并对其进行id(或者依赖它),以便它可以很容易{{1}如果用户决定要使用其他选项,则为-ed。验证可以通过输入按钮上的onClick来处理。如果我感觉很活跃,我会选择AJAX路线,并完全跳过.remove()

我肯定会让验证失败。他们想要“其他”,你想知道“其他”是什么。如果您不关心其他是什么,那么请不要理会输入框。

编辑:可能看起来像这样。

<form>

$('input[type="radio"]').click( function() { if($(this).next().attr('name') != 'other' && $(this).attr('name') == 'other_input') { $(this).after('<textarea name="other"></textarea>'); } else { $('textarea[name="other"]').remove(); } } 会对点击的任何广播作出反应,而click会确保它只是“其他”单选按钮会对点击产生反应,并且只会对之后还没有textarea(所以你没有得到多个textarea传播)。

在处理方面,你必须首先进行验证,看看是否检查了其他内容,并获取textarea的输入(如果是)。您可能应该使用服务器端验证。

希望能让你开始。

答案 1 :(得分:0)

我通常将我的单选按钮括在这样的标签中:

{{1}}

这样用户可以点击文本来触发按钮。

在决定如何表现时,我通常会对自己说“你认为用户在做到这一点时的期望是什么......”#34;这经常给我答案。因此,在单击或焦点文本框时,打开随附的收音机。如果您已禁用文本框,这将无法正常工作!

{{1}}

如果其他选项是危险的(删除数据),我会禁用该文本框,直到用户明确单击其他。然后,无线电驱动文本框而不是相反。您希望用户在这种情况下必须完成另一个步骤。这取决于具体情况 - 想想在每种情况下会发生什么。

我经常试图让用户做一些“错误”的事情变得不可能或烦恼。如果某些内容不一致,请禁用“确定”按钮。或者,在用户键入文本时选择“其他”单选按钮。如果文本框中有文字,但单选按钮设置为不同,我通常只会忽略该文本。但如果它是一个严重/危险的情况,你想确保用户下定决心;如果你在用户选择不同的收音机时删除了这个文本,那可能会让他们感到厌烦,但是如果他们应该小心的话可能是合适的。