如果AND语句,javascript语法错误

时间:2013-04-27 03:54:56

标签: google-app-engine jinja2

uck - 不断收到语法错误 - 出了什么问题? - 这是在我的js控制台中:     var full_name = curry +“,”+ stefan;         if((!= None)&&(!=“”)&&(!=“None”)){             full_name + =“”+;         }     add_html + =“full_name”;

错误是Uncaught SyntaxError:Unexpected token!=

基本上我正在尝试查看是否有用户输入的中间名称或名称,并将其添加到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 - 谷歌应用引擎

1 个答案:

答案 0 :(得分: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。

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