我创建了一个数据库驱动的测试,有三种类型的问题 - 输入类型=广播,文本和复选框。如果我在结束标记之前插入必需,它适用于广播和文字问题,但不适用于复选框。
问题是每个复选框问题都有几个可能的答案 - 从三到六个不等。这些正确答案的选择数量也各不相同。
但是当我添加" required"对于复选框脚本,用户必须选择每个答案才能进入结果页面。这就是代码的样子:
<label for="q'.$QID.'-'.$Value.'"><input type="checkbox" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" **required**> '.$QA.'</label>
我找到了HTML5 Required Attribute页面,它似乎解决了这个问题。如果我理解正确,您可以通过插入&#34; required&#34;来解决问题。只有一个元素。因此,如果您将其插入答案A中,用户可能会选择答案C和D,一切都会正常工作。
如果这是正确的,那么有没有办法让#34;必要&#34;只显示一个复选框,而不是全部显示?
答案 0 :(得分:1)
使用required
条件作为组的第一个复选框。我假设你的html代码是用.php文件编写的。
$required = ($Value == 0) ? "required" : ""; //condition to check if the value is first. since it is database driven it would be better to check the key instead of the value.;
echo '<label for="q'.$QID.'-'.$Value.'"><input type="checkbox" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" '. $required .'> '.$QA.'</label>';
另一个解决方案是使用Jquery添加必需的属性。例如,如果性别是复选框组的名称,则:
$('input[type=checkbox][name=gender]')[0].attr('required', 'required');;