【问题标题】:Passing values from Django template to javascript-ajax function将值从 Django 模板传递给 javascript-ajax 函数
【发布时间】:2020-06-04 04:19:38
【问题描述】:

现在我的模板显示了一个表格,每行都有一个链接以显示更多详细信息。每行通过唯一的column_namedb_nameschema_nametablenm 组合来获取更多详细信息。

<td>
    <a href="{% url 'moreDetails' column_name=row.colname db_name=row.dbname schema_name=row.schemaname table_name=row.tablenm %} " target="_blank">
        Values
    </a>
</td>

上述代码有效,但为结果集打开一个新窗口。但是,我想通过 javascript(Jquery-django) 路由它并在 Javascript 中捕获结果并将结果显示为 javascript 消息而不刷新完整页面。

如何在点击事件中将值(column_namedb_nameschema_nametablenm)传递给 java 脚本

我尝试用按钮替换href并为其设置一个值

<td>
    <input type="button" value={% row.colname |","| row.dbname |","| row.schemaname |","| row.tablenm %} class="apireq" />
<td>

但似乎不起作用。我欢迎对此提供任何帮助。提前致谢

【问题讨论】:

  • 如果您想将变量传递给 javascript,您需要在模板文件中编写 javascript,或者以某种方式从模板文件将变量传递给 javascript。 (给window赋值变量或者设置JS可以读取的元素的数据属性)
  • 您可以在视图中返回 JsonResponse 和数据,然后使用 ajax 显示数据,这样您就不必刷新浏览器

标签: django django-rest-framework django-templates


【解决方案1】:

为什么不将它们设置为数据属性?

<input type="button" class="apireq" 
       data-colname="{{row.colname}}"
       data-dbname="{{row.dbname}}"
       data-schemaname="{{row.schemaname}}"
       data-tablenm="{{row.tablenm}}"
/>

然后在您的单击事件处理程序中,您将获得对生成事件的按钮的引用,您所需要做的就是从中读取属性。而且它们已经被解析出来了,所以也不用担心。

【讨论】:

  • 谢谢。我对 jquery 很陌生。我尝试了以下方法。但是没有用。感谢任何帮助
  • 我在表格数据上方添加了一个 并尝试在 java 脚本中获取该数据,例如 var jq_column_name= $("#collist tr")。 last().attr("data-colname"); .但不起作用。它说 jq_column_name value "undefined" 。谢谢
  • var jq_column_name = $(this).attr('data-colname');工作。谢谢
猜你喜欢
  • 2013-11-17
  • 2018-08-24
  • 1970-01-01
  • 2020-10-20
  • 1970-01-01
  • 2012-10-09
  • 2020-06-08
  • 2013-07-29
  • 2018-12-03
相关资源
最近更新 更多