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

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-above 和 all-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",答案面板也不会显示正确答案。 - 分数徽章 默认情况下不显示,因为该元素不产生分数。
weight和hide-score-badge属性不能与builtin-grading="false"一起使用。同样,不允许对单个pl-answer子项使用score和feedback。- 当
builtin-grading="false"时,all-of-the-above和none-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-json、external-json-correct-key 和 external-json-incorrect-key 属性使用外部 JSON 文件定义答案选择。相反,定义与 pl-answer 元素内联的答案选择。
示例实现¶
- [元素/多项选择]
- [演示/随机多项选择]