【问题标题】:Require a selection in Amazon Mechanical Turk <crowd-radio-group>需要在 Amazon Mechanical Turk <crowd-radio-group> 中进行选择
【发布时间】:2019-04-07 02:28:20
【问题描述】:

我正在尝试使用 AMT 的新 crowd-form HTML 元素来创建 HIT。

&lt;crowd-radio-group&gt; 的文档说

此元素支持以下属性。

允许空选择

一个布尔开关,如果存在,则不允许选中单选按钮。

但是,即使没有该属性,表单也很高兴允许用户在不选择组中任何单选按钮的情况下提交。

我可以让它要求只使用 HTML 元素进行选择,还是我需要添加验证代码并自己检查?

【问题讨论】:

  • 确保您在广播组中没有其他 HTML 代码。我开始对所有输入使用纯 HTML。与 mturks 几乎相同的 HTML,您只需要提供一些样式。此外,提供的 mturk 标签非常不灵活,没有提供高级功能

标签: mechanicalturk


【解决方案1】:

您可以在设计页面中包含一个自定义脚本,当用户单击提交时验证您的表单。

代码可在 Github 上获得,由 Reddit 上更活跃的 MTurk 请求者社区指导 here。

代码如下:

function validateForm() {
    var valid = true;
    var radioGroups = document.querySelectorAll("crowd-radio-group");
    for (var i = 0; i < radioGroups.length; i++) {
        var validGroup = false;
        var radioButtons = radioGroups[i].children;
        for (var j = 0; j < radioButtons.length; j++) {
            validGroup = validGroup || radioButtons[j].checked;
        }
        valid = valid && validGroup;
    }
    return valid;
}

window.onload = function() {
    document.querySelector('crowd-form').onsubmit = function(e) {
        if (!validateForm()) {
            alert("Please answer all the questions in order to submit.");
            e.preventDefault();
        }
    }
}

如您所见,validateForm() 函数在提交表单时被调用,该函数检查所有单选组是否至少有一个选中按钮。如果表单不完整,用户会收到警报。可以在此处放置任何其他必要的自定义检查。

【讨论】:

    猜你喜欢
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2013-01-12
    • 1970-01-01
    相关资源
    最近更新 更多