在HTML中将参数传递到Javascript中
我在Django项目中使用了一个html模板。我有一个在Django视图中定义的字符串,我想在html模板中传递给javascript,但我很难让它正常工作。有两个不同的字符串,显示的字符串取决于切换的状态 在我的视图中创建的字符串(正确显示时)如下所示:在HTML中将参数传递到Javascript中,javascript,html,Javascript,Html,我在Django项目中使用了一个html模板。我有一个在Django视图中定义的字符串,我想在html模板中传递给javascript,但我很难让它正常工作。有两个不同的字符串,显示的字符串取决于切换的状态 在我的视图中创建的字符串(正确显示时)如下所示: {% if ATS %} <div class="panel panel-heading"> <h3 class="text-center">ATS</h3> </div>
{% if ATS %}
<div class="panel panel-heading">
<h3 class="text-center">ATS</h3>
</div>
<div class="panel-body">
<div class="checkbox disabled">
<label>
<input id="ATS_debug" type="checkbox" data-toggle="toggle">
ATS Debug
</label>
</div>
<div id="ATS" style="background-color:black; color:white; padding:20px;">
<p>{{ ATS_string_false | linebreaks }}</p>
</div>
</div>
<script>
$(function() {
$('#ATS_debug').change(function() {
if ($(this).prop('checked')) {
$('#ATS').html({{ATS_string_true}});
} else {
$('#ATS').html({{ATS_string_false}});
}
})
})
</script>
{% endif %}
ATS_字符串_true
:
2015-123-01:34:39 CDS_FSW_FLASH_PLAYBK_STOP
2015-123-01:34:41 CDS_FSW_FLASH_REPLAY_REQ TLM_DATA_TYPE=0 START_BLOCK=7 NUM_BLOCKS=3
2015-123-01:34:43 CDS_FSW_FLASH_REPLAY_REQ TLM_DATA_TYPE=1 START_BLOCK=300 NUM_BLOCKS=12
2015-123-01:34:51 CDS_FSW_FLASH_PLAYBK_STOP
和ATS\u string\u false
:
[Ref task: SAT_F7_COMM_NOMINAL_31_op ] 2015-123-01:34:39 CDS_FSW_FLASH_PLAYBK_STOP
但是,错误消息中的字符串如下所示:
[Ref task: <SAT_F7_COMM_NOMINAL_31_op> ] >> 2015-123-01:34:39 CDS_FSW_FLASH_PLAYBK_STOP
[Ref task: <SAT_F7_COMM_NOMINAL_31_op> ] >> 2015-123-01:34:41 CDS_FSW_FLASH_REPLAY_REQ TLM_DATA_TYPE=0 START_BLOCK=7 NUM_BLOCKS=3
[Ref task: <SAT_F7_COMM_NOMINAL_31_op> ] >> 2015-123-01:34:43 CDS_FSW_FLASH_REPLAY_REQ TLM_DATA_TYPE=1 START_BLOCK=300 NUM_BLOCKS=12
我的html/js如下所示:
{% if ATS %}
<div class="panel panel-heading">
<h3 class="text-center">ATS</h3>
</div>
<div class="panel-body">
<div class="checkbox disabled">
<label>
<input id="ATS_debug" type="checkbox" data-toggle="toggle">
ATS Debug
</label>
</div>
<div id="ATS" style="background-color:black; color:white; padding:20px;">
<p>{{ ATS_string_false | linebreaks }}</p>
</div>
</div>
<script>
$(function() {
$('#ATS_debug').change(function() {
if ($(this).prop('checked')) {
$('#ATS').html({{ATS_string_true}});
} else {
$('#ATS').html({{ATS_string_false}});
}
})
})
</script>
{% endif %}
{%if ATS%}
自动测试系统
自动测试系统调试
{{ATS_string_false | linebreaks}}
$(函数(){
$('#ATS_调试')。更改(函数(){
if($(this.prop('checked')){
$('#ATS').html({{ATS_string_true}});
}否则{
$('#ATS').html({{ATS_string_false}});
}
})
})
{%endif%}
我在$('#ATS').html({{ATS#u string_true}})上得到一个未捕获的语法错误:意外的标识符错误代码>。有人能帮我解决这个问题吗
谢谢 您需要将变量{ATS_string_true}}包装到“”中,如下所示:
[Ref task: <SAT_F7_COMM_NOMINAL_31_op> ] >> 2015-123-01:34:39 CDS_FSW_FLASH_PLAYBK_STOP
[Ref task: <SAT_F7_COMM_NOMINAL_31_op> ] >> 2015-123-01:34:41 CDS_FSW_FLASH_REPLAY_REQ TLM_DATA_TYPE=0 START_BLOCK=7 NUM_BLOCKS=3
[Ref task: <SAT_F7_COMM_NOMINAL_31_op> ] >> 2015-123-01:34:43 CDS_FSW_FLASH_REPLAY_REQ TLM_DATA_TYPE=1 START_BLOCK=300 NUM_BLOCKS=12
$('#ATS').html(“{{ATS_string_true}}”)代码>
因为Django不是为你做的。)你需要用引号括起来,因为@Nursultan刚刚回答了这个问题。模板引擎只关心用什么替换什么。{{ATS\u string\u true}
部分将被变量ATS\u string\u true
的值精确替换。现在,看一看抛出错误的代码:
$("#ATS").html({{ATS_string_true}});
而且
这里考虑:var ATS\u string\u true=“我是真值”代码>
jQuery的.html()
方法要求第一个参数是字符串。如果不使用引号将其括起来,它将显示为:
$("#ATS").html(I am the true value); // Invalid JS
但如果你会像建议的那样添加引号;最终处理的模板如下所示:
$("#ATS").html("I am the true value"); // Valid JS
根据我对服务器页面和服务器模板的了解,@RexOverflow是正确的。您需要将这些值放在引号中,这样结果才是正确的js/html。@Sinistralis我刚刚删除了我的注释。所以,现在不要参考它。@Nursultan已回答。任何服务器页面/模板语言也是如此。Ahh。总是简单的事情让我着迷。谢谢