我有下面的代码
function OpenModal()
{
var fname="Quartz";
var mname="Rohit";
var lname="Patel";
var url="{% url 'display_modal' %}"+fname +"/"+mname+"/"+lname;
alert(url);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById('divcontent').innerHTML=this.responseText;
}
};
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
如何在django模板语言中单击按钮执行上述代码。 url就像
path('member/search/',
views.displayModalView, name="display_modal"),
ajax的作用是防止页面重新加载,这就是ajax的魔力所在。因此,如果您提供
path
,则可以将其用于页面重新加载Html:
URL.py: 它将把正则表达式与您提到的url相匹配。 您在ajax调用中提到的
name='display_modal'
参数和url: "{% url 'display_modal' %}"
是相同的views.py:
您可以向按钮添加onclick,其值应等于您的函数 像这样
javascript
您还可以看到jquerydocumentation
我认为可以在普通的click()方法中使用jQuery Ajax请求,如下所述:W3C Documentation
但是,在这种情况下,我认为您必须将url声明为TemplateAsView,这样您就可以告诉Django立即返回模板,而不是执行Django视图,如doc中所述。在模板中,您可以根据需要执行函数,例如在模板中,您可以在document ready上插入对函数的调用,并在加载DOM时执行,如here所述
要做到这一点,您必须更改url,因为在view.py中有一个用于搜索的view.someView,someView函数声明,但是您的函数是一个Javascript,所以我想,您应该将它放在模板代码中
我看到您的代码是一个Javascript函数,所以我试图解释为什么您必须使用Django模板系统调用这样的函数,作为模板调用,而不能直接调用该函数。我认为,按照您的意愿,每次都会强制重新加载DOM,并且,我认为,有几种方法可以在不刷新页面的情况下打开一个模式
相关问题 更多 >
编程相关推荐