2013-10-14 3 views
-1

Я использую Smarty v.1.6В том числе Jquery в Smarty

Я делаю select форму в TPL с OnChange.

Вот мой фрагмент кода:

<div class="row"> 
    <select name="group" id="group"> 
    {foreach from=$userGroupsData item=group} 
     <option value="{$group.id}">{$group.name}</option> 
    {/foreach} 
    </select> 
</div> 
<div id="fetchmember"> 
<script type="text/javascript" src="jquery.js"></script> <!-- is it right? --> 
<script type="text/javascript"> 
    {literal}     
    $('#group').on('change',function(){ 
    alert("hello");      
    }); 
    {/literal}      
</script> 
</div> 

Я просто хочу, чтобы убедиться, что JQuery работает нормально, поэтому я проверить его с alert. Но предупреждение не может появиться. Что-то не так с моим кодом? Пожалуйста, помогите .. Большое спасибо

ответ

0

Вы должны поставить код jQuery внутри $(function(){ //your code here });, чтобы выполнить его, когда DOM готов. См jQuery documentation

$(function(){ 
    $('#group').on('change',function(){ 
    alert("hello");      
    }); 
}); 

Попробуйте загрузить JQuery из CDN, как так <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>.

И здесь вам не нужен блок {literal}. Просто используйте пробел или разрыв строки после открытия фигурных скобок в вашем JS-коде, поэтому smarty не считает, что это функция.

+1

Благодарим вас за ответ, но предупреждение все еще не отображается. Где я должен поставить ? –

+0

Неважно, где вы его положили. Обычно я бы предпочел раздел '' вашего html-файла. У вас есть файл jquery.js внутри той же папки, что и ваш html-файл? – Alexxus

+0

Да, я помещаю их (jquery.js и tpl файл) в ту же папку. –

Смежные вопросы