2013-04-27 127 views
0

uck - 保持语法错误 - 怎么回事? - 这是在我的js控制台中: var full_name = curry +“,”+ stefan; (!= None)){ full_name + =“”+;(“=”无)&(!=无)& &(!=“”) } add_html + =“full_name”;javascript语法错误如果AND语句

的错误是未捕获的SyntaxError:意外的标记=

基本上我想看看是否有一个中间名或名用户输入,并将其添加到nfull_name。下面是实际的模板代码,以及:

{% for each in allteachers %} 
    var full_name = {{each.instructor_lastname}} + ", " + {{each.instructor_firstname}}; 
    if (({{each.instructor_middlename}} != None) && ({{each.instructor_middlename}}!="") && ({{each.instructor_middlename}}!= "None")) { 
       full_name += " " + {{each.instructor_middlename}}; 
    } 
    add_html += "<option value='{{each.key()}}'>full_name</option>"; 

{%ENDFOR%}

使用jinaja2 - Google App Engine的

回答

2

在非常非常至少,尝试用引号引起您的模板变量:

{% for each in allteachers %} 
    var full_name = "{{each.instructor_lastname}}" + ", " + "{{each.instructor_firstname}}"; 
    if (("{{each.instructor_middlename}}" != None) && ("{{each.instructor_middlename}}"!="") && ("{{each.instructor_middlename}}"!= "None")) { 
      full_name += " " + "{{each.instructor_middlename}}"; 
    } 
    add_html += "<option value='{{each.key()}}'>full_name</option>"; 
{% endfor %} 

这会让你知道你是否在正确的轨道上。

但是,您需要小心,因为您基本上是将用户输入直接放入脚本代码中。这可能非常危险 - 可以提交表单的用户可以在页面中编写他们想要的任何JavaScript。

你应该在服务器上验证它,而不是试图在客户端代码中进行验证。然后,您可以将您知道安全的值传回您的模板。

+0

针对JavaScript注入警告的+1。 – michaelb958 2013-04-27 04:04:53