我正在尝试使用AMT的新crowd-formHTML元素创建HIT。
的文档<crowd-radio-group>说
此元素支持以下属性。
允许空选择
一个布尔型开关,如果存在,则不允许检查任何单选按钮。
但是,即使没有该属性,该表单也非常乐于允许用户提交而无需选择组中的任何单选按钮。
我是否可以仅使用HTML元素来进行选择,还是需要添加验证码并亲自检查?
小智 2
您可以在设计页面中包含自定义脚本,以便在用户单击“提交”时验证您的表单。
该代码可在Github上获取,由 Reddit 上更活跃的 MTurk 请求者社区指导。
代码如下:
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,validateForm()在提交表单时会调用该函数,该函数会检查所有单选组是否至少有一个选中的按钮。如果表单不完整,则会向用户发出警报。任何其他必要的自定义检查都可以放置在这里。
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |