自动计算奏鸣曲的字段值管理包

自动计算奏鸣曲的字段值管理包

问题描述:

我使用symfony + sonataAdminBundle为我的应用程序和 我有一个实体“产品”与2输入“PrixAchat”和“PrixVenteTTC”和另一个字段称为“marge”,我喜欢计算他的在与其它输入的公式的值,这就是为什么我对这个字段创建一个禁用输入:自动计算奏鸣曲的字段值管理包

ProduitAdmin

protected function configureFormFields(FormMapper $formMapper) 
    { 
    $formMapper 
     ->add('prixAchat') 
     ->add('prixVenteTTC') 

     ->add('marge',null,array(
     'label' => 'Marge', 
     'read_only' => true, 
     'disabled' => true, 
     'attr' =>array(
     'template' => 'CRUD/marge.html.twig', 
     ))) 
    } 

模板:Marge.html.twig

{% extends 'SonataAdminBundle:CRUD:base_edit.html.twig' %} 



{% block javascripts %} 
{{ parent() }} 
<script type="text/javascript"> 

    $(function(){ 


    var prixVente = document.getElementById('form [id$="_prixVenteTTC"]').value; 
    var prixAchat = document.getElementById('form [id$="_prixAchat"]').value; 

    document.getElementById('form [id$="_marge"]').value = ((prixVente/prixAchat)*100)-100; 

    }); 



</script> 
{% endblock %} 

但值不计算.. Somewone有一个想法,可以帮助我吗?

该代码只运行一次。您应该添加一个更改侦听器到触发器重新计算价格的输入字段

+0

我该怎么做? –

+0

https://api.jquery.com/change/如果您使用jquery。或https://stackoverflow.com/questions/24172963/jquery-change-method-in-vanilla-javascript使用只是普通的Js – Carlos