当我有一组复选框或单选按钮时,我经常需要选择其他。此复选框或单选按钮通常伴有一个文本框,用户应填写此其他的内容。
你通常如何处理这个设置?你用什么样的标记?您的验证需要什么?你有没有使用java脚本?例如:
非常不确定如何最好地处理这个问题,所以任何建议和例子都非常受欢迎c“,)
答案 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}}
如果其他选项是危险的(删除数据),我会禁用该文本框,直到用户明确单击其他。然后,无线电驱动文本框而不是相反。您希望用户在这种情况下必须完成另一个步骤。这取决于具体情况 - 想想在每种情况下会发生什么。
我经常试图让用户做一些“错误”的事情变得不可能或烦恼。如果某些内容不一致,请禁用“确定”按钮。或者,在用户键入文本时选择“其他”单选按钮。如果文本框中有文字,但单选按钮设置为不同,我通常只会忽略该文本。但如果它是一个严重/危险的情况,你想确保用户下定决心;如果你在用户选择不同的收音机时删除了这个文本,那可能会让他们感到厌烦,但是如果他们应该小心的话可能是合适的。