如何在djang中添加javascript功能

2024-09-28 21:56:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想制作一个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新手。请帮忙。在


Tags: 文件django代码textdivinputvarhtml
2条回答

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

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

<script type = "text/javascript">
    var msg = '{{serverMsg}}';
    console.log(msg);
</script>

这将由Django计算,它将用serverMsg模型变量的实际值替换{}。在

据我所知,如果您将JS代码放在单独的*.JS文件中,它将无法工作,因为Django不会解析这个文件。在

也许这是派生视图内部的问题。试试这个:

在您的基本html视图中添加或查找(这必须放在<head>标记中):

{% block scripts %}
{% endblock scripts %}

And(在<body>标记内)

^{pr2}$

然后在您的派生视图中:

  {% 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项目中,效果很好。在

相关问题 更多 >