symfony twig javascript函数undefined

时间:2015-02-04 20:21:41

标签: javascript symfony twig

我正在尝试在我的树枝中使用外部JS文件。目标只是验证客户的输入。 当我将我的脚本直接放入我的Transfert.html.twig时,我的脚本执行得很好但是当我使用外部文件时,没有任何事情发生。由assetic创建的链接很好(当我在我的网页源代码中点击它时,我可以看到我的脚本)。但是firebug说

"SyntaxError: expected expression, got '<'
<script type="text/javascript">" "ReferenceError: verifyMontant is not defined"

我将我的捆绑注册到app / config / config.yml: “捆绑:[FASTTransfertBundle]”,所以我猜这里没有问题

现在这是我的代码:Transfert.html.twig:

{# src/FAST/TransfertBundle/Resources/views/Default/Transfert.html.twig #}
{% extends "FASTTransfertBundle::layout.html.twig" %}
{% block title %}{{ parent() }} - Index{% endblock %}
{% block body %}
    {{ form_label(form.montant) }} {{ form_widget(form.montant,{'attr':{'onblur':'verifyMontant(this)'}}) }}
    {% javascripts '@FASTTransfertBundle/Resources/public/javascript/verifyTransfert.js' %}
        <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

这是我的javascript文件:

<script type="text/javascript">
//color if wrong
function changeColor(field,error)
{
    if(error)
        field.style.backgroundColor = "#fba";
    else
        field.style.backgroundColor = "";
}

function verifyMontant(field)
{
    var montant=  field.value.replace(/\D+/g,'');
    var regex = /^\-?[0-9]*\.?[0-9]+$/;
    if(!regex.test(field.value)){
        changeColor(field, true);
        return false;
    }
    else if(montant.length != 11){
        changeColor(field, true);
        return false;
    }
    else{
        changeColor(field,false);
        return true;
    }
}
</script>

1 个答案:

答案 0 :(得分:3)

您必须删除

<script type="text/javascript">

来自您的javascript文件。