【问题标题】:amazon turk, submit is not working亚马逊土耳其人,提交不起作用
【发布时间】:2015-09-12 10:30:19
【问题描述】:

我创建了一个亚马逊土耳其人 HIT。 提交 HIT 后。我们总是收到来自人们的电子邮件,告诉我们提交无效...

老实说,我不知道自己做错了什么。

我的 HTML 中的表单:

<form name='mturk_form' method='post' id='mturk_form' action='https://www.mturk.com/mturk/externalSubmit'>
    <div class="inputs">
        <label class="input-green"><input name="EXISTS" type="radio" value="YES" id="ckeck-yes">YES</label>
        <label class="input-red">  <input name="EXISTS" type="radio" value="NO"  id="ckeck-no">NO</label>
    </div>
    <input type="hidden" name="IMG_ID" value="${Img_ind}">
    <input type="hidden" id="assignment_id" name="assignmentId" value=""/>

    <p class="text-center"><input type="submit" id="submitButton" class="btn btn-primary" value="Submit"></p>   
</form>

Javascript:

<script type='text/javascript'>
    var checkedYes = document.getElementById('ckeck-yes');
    var checkedNo = document.getElementById('ckeck-no');

    window.onload = function() {
        var submitButtons = document.getElementById('submitButton');

        // Get the Assignment ID, which will be added to your URL by Mechanical Turk.
        var assignment_id = location.search.match(/assignmentId=(\w+)/)[1];
        document.getElementById("assignment_id").value = assignment_id;

        // Assignment ID "ASSIGNMENT_ID_NOT_AVAILABLE" of indicates preview mode.  Warn worker.
        if( assignment_id == "ASSIGNMENT_ID_NOT_AVAILABLE" ) {
            submitButtons.disabled = true;
          document.getElementById("click_accept_warning").style.display = "block";
        }

        // Get the Submit URL, which will be added to your URL by Mechanical Turk. */
        var submit_to_url_base = (location.search.match(/turkSubmitTo=([^=&]+)/)||[])[1];
        if(submit_to_url_base) {
          document.getElementById("mturk_form").action = submit_to_url_base + "/mturk/externalSubmit";
        }       


        if(submitButtons) {
            submitButtons.setAttribute('onclick', 'return validateForm()'); 
        }
    };

    function validateForm() {
        if(checkedYes.checked == false && checkedNo.checked == false) {
            alert("Please select the most matching result!");
            return false;
        }
        return true;
    }
</script>

我错过了什么?

【问题讨论】:

  • 你是什么意思它不起作用?按钮点击不起作用,它无法回发?您是否使用 Firebug 等工具进行诊断?
  • 我倾向于对提交 URL 进行硬编码。这永远不会改变(沙盒和实时服务器之间除外)。
  • 谢谢,@JeremyThompson 我正在为某人做这件事,我不在美国,所以我什至无法测试它......你看到我的代码有问题吗?跨度>
  • @Thomas my HIT 也自动在沙箱中可用。 ?我如何识别它
  • 如果发现问题,在接受命中后 FORM url 更改为 https%3A%2F%2Fworkersandbox.mturk.com/mturk/externalSubmit... %3A%2F%2F 即将到来从?

标签: amazon-web-services amazon mechanicalturk


【解决方案1】:

问题是亚马逊土耳其人将我的 http:// 替换为 http%3A%2F%2F

所以我创建了一个新的命中,检查新的命中 javascript 并从 amazon 示例中复制了 2 个 javascript 函数。

function decode(strToDecode) {
  var encoded = strToDecode;
  return unescape(encoded.replace(/\+/g,  " "));
};

function turkGetSubmitToHost() {
      return decode(turkGetParam("turkSubmitTo", "https://www.mturk.com"));
};  

  var form = document.getElementById("mturk_form"); 
  if (form) {
     form.action = turkGetSubmitToHost() + "/mturk/externalSubmit"; 
  } 

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多