我有一个模板文件,我想在我的模板文件中使用url标记。
Html标记<input type="text" id="test_id" value="12" />
网址就是这样的
url(r'^check/(?P<code>[a-zA-Z\d]+)/(?P<test_value>[a-zA-Z\d]+)/$',
'test_code',
name='test_code'
),
包含javascript代码的模板文件。
`var value1 = $('#test_id').val()`;
`var value2 = $('#test_id').val()`;
'{% url "test_code" code=value1 test_value=value2 %}'
你可以看到我使用了url标签,我无法从html标签值设置value1和value2。有没有办法可以将html标记值传递给url标记的关键字参数。
答案 0 :(得分:0)
不是这样的。因为模板在发送给用户之前呈现。所以在渲染时,输入的值还不知道。但是,模板渲染也不会运行javascript。
您可以做的是在客户端使用javascript分配网址。与您的操作类似,但您必须将其连接到某个操作。如果输入已填充,则$(document).ready
;如果您正在等待用户的互动,则$(value1).on('change')
。
答案 1 :(得分:0)
当Django呈现模板时,在服务器端评估模板标记。在客户端执行JavaScript代码后,模板标记将不再可见,您只需获得生成的URL字符串。
如果要在URL中插入JavaScript值,您有两个选择:
'{% url "test_code" %}'+'?code=value1&test_value=value2'
var url = '{% url "test_code" code="code_value" test_value="test_value" %}';
url.replace("code_value", value1);
url.replace("test_value", value2);