如何在django中添加javascript功能

如何在django中添加javascript功能,javascript,jquery,python,html,django,Javascript,Jquery,Python,Html,Django,我想制作一个django pp,它有一个屏幕,可以在点击按钮时动态添加文本字段。我使用嵌入在html文件中的javascript代码来实现这一点。此html文件包含在django应用程序的templates文件夹中 这是我的代码: <script type = "text/javascript"> var counter = 1; var limit = 5; function addInput(divName){ if (counter == limit) {

我想制作一个django pp,它有一个屏幕,可以在点击按钮时动态添加文本字段。我使用嵌入在html文件中的javascript代码来实现这一点。此html文件包含在django应用程序的templates文件夹中

这是我的代码:

<script type = "text/javascript">
var counter = 1;
var limit = 5;
function addInput(divName){
     if (counter == limit)  {
          alert("You have reached the limit of adding " + counter + " inputs");
     }
     else {
          var newdiv = document.createElement('div');
          newdiv.innerHTML = "Email address " + (counter + 1) + " <br><input type='text' name='myInputs[]'>";
          document.getElementById(divName).appendChild(newdiv);
          counter++;
     }
}
</script>
<form method="POST">
     <div id="dynamicInput">
          Email Address 1<br><input type="text" name="myInputs[]">
     </div>
     <input type="button" value="Add another text input" onClick="addInput('dynamicInput');">
</form>

但它会显示按钮和字段。但当我单击按钮时,它不会再次添加字段。错在哪里?django不允许以这种方式使用javascript吗?由于javascript是客户端,django在服务器端工作?如果是这样的话,我如何使它工作?我是django的新手。请帮忙

关于您的问题,是否可以将JavaScript和Django结合起来。正如您所说,Django是服务器端使用的技术,而JavaScript在客户端的客户端浏览器中执行

但是,您可以使用Django的模型来准备应该在客户端执行的JS代码。您可以在模板的代码中执行此操作:

<script type = "text/javascript">
    var msg = '{{serverMsg}}';
    console.log(msg);
</script>
这将由Django进行计算,Django将用serverMsg模型变量的实际值替换{{serverMsg}}


据我所知,如果将JS代码放在单独的*.JS文件中,它将不起作用,因为Django不会解析此文件。

可能是派生视图中的问题。试试这个:

在基本html视图中,添加或查找此必须进入标记:

和内部标签

然后在派生视图中:

  {% extends "your_base_file.html" %}
  {% block scripts %}
      Here goes your js code inside <script>
  {% endblock scripts %}
  {% block content %}
      Here goes your html form
  {% endblock content %}

我把你的脚本复制到了我的Django项目中,效果很好。

这看起来或多或少是对的。单击按钮时是否不会调用addInput函数?在addInput函数中放入console.log语句进行检查。我已解决了该问题。。谢谢大家的帮助在这种情况下,礼貌的做法是添加一条说明,说明问题所在,以防万一我没有.js文件。我将javascript和html代码保存在应用程序模板文件夹中的同一个.html文件中。i、 e.myapp/templates/myapp/my.htmlYou可以将type=text/javascript从脚本标记中去掉。这已经是type的默认值了。我查看了您的JS代码,没有发现Django可以在任何地方注入它的模型。如果您想从Django模型动态添加一些东西,您需要使用{…}}operatorNo,这只是一个细微的差别。
{% block content %}
{% endblock content %}
  {% extends "your_base_file.html" %}
  {% block scripts %}
      Here goes your js code inside <script>
  {% endblock scripts %}
  {% block content %}
      Here goes your html form
  {% endblock content %}