Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在HTML中将参数传递到Javascript中_Javascript_Html - Fatal编程技术网

在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>

我在Django项目中使用了一个html模板。我有一个在Django视图中定义的字符串,我想在html模板中传递给javascript,但我很难让它正常工作。有两个不同的字符串,显示的字符串取决于切换的状态

在我的视图中创建的字符串(正确显示时)如下所示:

{% 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: &lt;SAT_F7_COMM_NOMINAL_31_op&gt; ] &gt;&gt; 2015-123-01:34:39 CDS_FSW_FLASH_PLAYBK_STOP  
[Ref task: &lt;SAT_F7_COMM_NOMINAL_31_op&gt; ] &gt;&gt; 2015-123-01:34:41 CDS_FSW_FLASH_REPLAY_REQ TLM_DATA_TYPE=0 START_BLOCK=7 NUM_BLOCKS=3 
[Ref task: &lt;SAT_F7_COMM_NOMINAL_31_op&gt; ] &gt;&gt; 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: &lt;SAT_F7_COMM_NOMINAL_31_op&gt; ] &gt;&gt; 2015-123-01:34:39 CDS_FSW_FLASH_PLAYBK_STOP  
[Ref task: &lt;SAT_F7_COMM_NOMINAL_31_op&gt; ] &gt;&gt; 2015-123-01:34:41 CDS_FSW_FLASH_REPLAY_REQ TLM_DATA_TYPE=0 START_BLOCK=7 NUM_BLOCKS=3 
[Ref task: &lt;SAT_F7_COMM_NOMINAL_31_op&gt; ] &gt;&gt; 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。总是简单的事情让我着迷。谢谢