html javascript - onclick()引用错误:函数未定义

时间:2016-10-19 01:41:20

标签: javascript jquery html ajax onclick

鉴于我的html文件,控制台会给出错误代码:

  

参考错误:未定义loadData。

根据其他答案,我已经重新检查了我的位置,

  1. 我的功能在</body>
  2. 之前声明
  3. 我在<head></head>;
  4. 中添加了javascript库
  5. 甚至将我的<input type= submit更改为<input type= button
  6. 如果它有帮助,我尝试删除我的表单标签,其中包含(但这是关于查询字符串的另一个问题)。
  7. 以下是现在的情况:

    <head>
        <script src = "//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    </head>
    <body>
       {%for document in documents %}
          <li> {{document.filename}}
          <input type="button" id="{{ document.id }}" onclick="loadData(this.id)" name = "load-data" value="Add to Layer"/>
          </li>
        {%endfor%}
    
    <script type ="text/javascript">
    function loadData(documentId){
       $.ajax({
       url:"/load",
       data: {'documentId': documentId},
       type: 'GET',
       success: function(){
          window.location.href = "http://127.0.0.1:8000/url/locations";
       }
    });
    }
    </script>
    </body>
    

    我似乎无法找到解释为什么该功能不会被解雇的原因。

2 个答案:

答案 0 :(得分:2)

这是修复(正如我朋友解释的那样):

我必须将我的脚本放在<head>标签中。

为什么? 因为文档已在脚本生成之前加载。

如果我想将它保留在底部,它必须看起来像这样:

$(document).ready(
  $('input').onclick(function(){})

提出后,代码可以运行。

答案 1 :(得分:0)

我已经测试了你的HTML,一切似乎都正常工作。我发现的唯一错误是$ ajax不是一个函数。它缺少一个点$ ajax =&gt; $就

尝试使用:

function loadData(documentId){
  $.ajax({
    url:"/load",
    data: {'documentId': documentId},
    type: 'GET',
    success: function(){
      window.location.href = "http://127.0.0.1:8000/url/locations";
    }
  });
}