2017-08-03 65 views
0

我在Symfony Project中使用Twig模板引擎工作。 我有一個form.html.twig文件,我有一個大表單,並且可以根據需要多次生成一個表單。 因此,當我按下「+」按鈕時,會出現一個新的子窗體。 此表單出現在prototype.html.twig文件中,其中存儲了表單的所有HTML,包含JS。如何檢查一個JS腳本是否沒有加載兩次或更多?

它看起來像:

<table class="table table-responsive table-bordered text-center" style="margin-bottom:0px;"> 
    <tr class="active"> 
     <td style="vertical-align:middle; padding-top:9px; padding-left:4px; padding-right:4px;"> <span style ="font-size: 24px;" class="glyphicon glyphicon-upload"></span></p> </td> 
     <td>{{ form_row(form.date) }}</td> 
     <td>{{ form_row(form.value) }}</td> 
     <td> {{ form_label(form.type, 'Value as % of') }} 
       {{ form_widget(form.type) }} </td> 
     <td>{{ form_row(form.frequency) }}</td> 
     <td>{{ form_row(form.duration) }} </td> 
     <td>{{ form_row(form.agreement) }}</td> 
     <td class="deleteButton" style="vertical-align:middle;"><a href="#"><button class="btn-sm btn-danger" style="border-radius:100%;"><span class="glyphicon glyphicon-remove"></span></button></a></td> 
    </tr> 
</table> 

<script> 
    $('.deleteButton').on('click', function(e) { 
      e.preventDefault(); 
      $(this).parent().remove(); 
     }); 
</script> 


{% block javascripts %} 
<script src="{{asset('js/endingDateCalculator.js')}}"></script> 
{% endblock javascripts %} 

看看阻止JavaScript的。在這個塊中,我有一個腳本來計算子表單中的結束日期。所以,一旦我點擊「+」按鈕出現一個新的窗體,並且腳本endingDateCalculator正在運行並連接到這個窗體。

我有點害怕,如果我多次點擊「+」,換句話說......如果我有超過1個子表單,這個腳本被一次又一次地調用,這會減慢頁面速度,或/和可以在同一時間工作的錯誤。

這是一次又一次的調用還是不是? 如果是的話,我該如何解決它? 我試圖將endingDateCalculator.js鏈接到form.html.twig(基本模板),但在這種情況下,當我生成新表單時,此腳本不起作用。

回答

相關問題