【问题标题】:Displaying "required" in just one checkbox (dynamic display)仅在一个复选框中显示“必需”(动态显示)
【发布时间】:2016-06-18 23:25:22
【问题描述】:

我创建了一个数据库驱动的测试,其中包含三种类型的问题 - 输入类型 = 单选、文本和复选框。如果我在结束标记之前插入 required,它适用于广播和文本问题,但不适用于复选框。

问题是每个复选框问题都有几个可能的答案——从三到六个不等。并且正确答案的选择数量也各不相同。

但是当我在复选框脚本中添加“必需”时,用户必须选择每个答案才能进入结果页面。代码是这样的:

<label for="q'.$QID.'-'.$Value.'"><input type="checkbox" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" **required**> '.$QA.'</label>

我找到了HTML5 Required Attribute 页面,它似乎可以解决这个问题。如果我理解正确,您可以通过在一个元素中插入“必需”来解决问题。因此,如果您将其插入答案 A,用户可能会选择答案 C 和 D,一切都会正常工作。

如果这是正确的,那么有没有办法让“必需”只显示在一个复选框中,而不是全部显示?

【问题讨论】:

  • 为什么不使用 php 编写的条件仅在组的第一个复选框中使用“必需”?
  • 好提示;谁能告诉我该怎么做?例如,有没有办法编写一个 PHP 开关,上面写着 1)仅在输入类型 = 复选框(“必需”已插入其他输入类型中)的答案中插入“必需”,以及 2)插入“必需” " 仅在每个组的第一个复选框中?

标签: php jquery html checkbox


【解决方案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');;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    相关资源
    最近更新 更多