跳转至

pl-multiple-choice元件

pl-multiple-choice 元素选择一个正确答案和零个或多个 错误的答案并将其以随机顺序显示为单选按钮。 不允许出现重复的答案选项(字符串等效项) pl-multiple-choice 元素,如有疑问将引发异常 如果两个(或更多)选择相同,则生成。

样品元素

pl-选择题元素截图

question.html
<pl-multiple-choice answers-name="acc" weight="1">
  <pl-answer correct="false">positive</pl-answer>
  <pl-answer correct="true">negative</pl-answer>
  <pl-answer correct="false">zero</pl-answer>
</pl-multiple-choice>

定制

属性 类型 默认 描述
all-of-the-above "false""random""correct""incorrect" "false" 添加 "All of the above" 选择。详情请参阅下文。
all-of-the-above-feedback 字符串 如果学生选择了此选项,则在问题评分后,将在 all-of-the-above 选项旁边向学生显示帮助文本。
allow-blank 布尔 是否允许空提交。如果 allow-blank 设置为 true,则未选择任何选项的提交将被标记为不正确而不是无效。
answers-name 字符串 用于存储数据的变量名称。请注意,该属性在问题中必须是唯一的,即该属性的值不应在问题中重复。
aria-label 字符串 "Multiple choice options" 元素的可访问标签。
builtin-grading 布尔 真实 元素是否执行自己的分级。如果是 false,则必须通过其他方式明确执行任何所需的评分。详情请参见禁用内置分级
display "block""inline""dropdown" "block" 输入字段的显示选项。块和内联将答案选项显示为单选按钮,而下拉列表将选项显示为下拉列表。
hide-letter-keys 布尔 隐藏答案列表中的字母键,即 (a)、(b)、(c) 等
hide-score-badge 布尔 隐藏所选答案旁边的徽章。
none-of-the-above "false""random""correct""incorrect" "false" 添加 "None of the above" 选择。详情请参阅下文。
none-of-the-above-feedback 字符串 如果学生选择了此选项,则在问题评分后,将在 none-of-the-above 选项旁边向学生显示帮助文本。
number-answers 整数 查看描述 要显示的答案选项总数。默认显示一个正确答案和所有错误答案。
order "random""ascend""descend""fixed" "random" 显示答案选项的命令。固定顺序以与原始源文件相同的顺序显示选项。
placeholder 字符串 "Select an option" display 设置为 "dropdown" 时用作占位符文本的字符串。还将接受空字符串 placeholder=""
size 整数 手动将下拉列表的大小设置为固定宽度。默认行为是使下拉菜单与最宽的选项一样宽。仅应与设置为 "dropdown"display 一起使用。
weight 整数 1 计算元素的加权平均分数时使用的权重。

自动添加答案选项

属性 none-of-the-aboveall-of-the-above 可以设置为以下值之一:

  • "false":选项列表中不会显示相应的选项。这是默认设置。
  • "random":始终显示相应选项,并且随机正确,概率与正确选项总数成正比。换句话说,如果总共有 N 种可能的正确选择,则该选择正确的概率为 1/N
  • "correct":将始终显示相应的选项,并且始终是正确答案。
  • "incorrect":将始终显示相应的选项,并且始终是不正确的答案(即干扰项)。

启用后,“以上所有”和“以上均不”包含在 number-answers 限制中。无论 order 设置如何,这些选项始终显示在其他选项之后。如果显示两个选项,则“以上全部”会列在“以上都不是”之前。

禁用内置评分

设置 builtin-grading="false" 会使元素显示选择并收集提交内容,而不会自行奖励任何积分。这在以下场景中很有用:

  • 调查式问题,没有单一的正确答案。
  • 多元素依赖性,其中正确答案取决于其他元素,并且必须一起评估。
  • 复杂或手动评分,其中正确性需要超越简单答案匹配的逻辑。

builtin-grading="false" 设置时:

  • 该元素不需要需要任何答案来获得 correct="true"
  • 该元素产生分数。要自动对提交的内容进行评分,您必须在 server.py 中提供 grade() 函数 或由 外部评分者 进行评估。如果没有,分数将基于问题中的其他可评分元素(如果没有其他元素,则得分为零)。
  • 即使答案面板标有 correct="true"答案面板也不会显示正确答案。
  • 分数徽章 默认情况下不显示,因为该元素不产生分数。
  • weighthide-score-badge 属性不能builtin-grading="false" 一起使用。同样,不允许对单个 pl-answer 子项使用 scorefeedback
  • builtin-grading="false" 时,all-of-the-abovenone-of-the-above 属性仅限于布尔值 true/false。将它们设置为 true 显示没有任何正确性语义的选项(始终显示在最后,当 number-answers 限制显示时始终包含在内)。不允许使用 "correct""incorrect""random" 等值。

Note

即使禁用内置评分,pl-answer 上的 correct="true" 属性仍然控制在元素准备显示时选择哪个单个答案。如果确实没有正确答案(例如调查),您可以从所有选项中省略 correct="true"

答案选择

pl-multiple-choice 元素内,每个选择都必须使用 pl-answer 子元素指定。

属性 类型 默认 描述
correct 布尔 这是问题的正确答案吗?
feedback 字符串 如果学生选择了此选项,则在问题评分后,辅助文本 (HTML) 将在该选项旁边显示给学生。
score 浮动范围 [0.0, 1.0] 查看描述 如果学生选择答案,则给予分数。正确答案默认为 1.0,错误答案默认为 0.0。

从已弃用的属性迁移

为了向后兼容,仍支持以下已弃用的属性:

旧语法 新语法
inline="true" display="inline"
fixed-order="true" order="fixed"
all-of-the-above="true" all-of-the-above="random"
none-of-the-above="true" none-of-the-above="random"

不推荐通过 external-jsonexternal-json-correct-keyexternal-json-incorrect-key 属性使用外部 JSON 文件定义答案选择。相反,定义与 pl-answer 元素内联的答案选择。

示例实现

  • [元素/多项选择]
  • [演示/随机多项选择]

参见