【问题标题】:javascript inside the rendered page is NOT rendered in YII render partial渲染页面内的 javascript 未在 YII 渲染部分中渲染
【发布时间】:2014-12-24 11:02:33
【问题描述】:

我正在尝试从我的控制器呈现如下页面

$this->renderPartial("_ReservationDetails",array('rowarray'=>$rowarray,'CalendarID'=>$CalendarID),false,true);

在我的视图文件中,_ReservationDetails我有以下内容

....
...
<td>
     <button id="btnPrint" onclick="return PrintReciept();" class="btn btn-small" type="button">Print Reservation</button>
</td>
....

我在 _ReservationDetails 中写了一个脚本,如下所示

<script>
   public function PrintReciept()
   {
      alert("I am here!");
      return false;
   }
</script>

但是当我单击PrintReservation 按钮时,它会在控制台中引发错误。 PrintReciept() is not defined

为什么会这样?

【问题讨论】:

    标签: javascript yii renderpartial


    【解决方案1】:

    在 onClick 属性中你声明onclick="PrintReciept();"

    你最好通过registerScript() method注册你的函数:

    Yii::app()->clientScript->registerScript('script', "
      function PrintReciept()
      {
         alert('I am here!');
         return false;
      }
    ", CClientScript::POS_END);
    

    【讨论】:

    • @Sachy,是的,在视图文件中。但也可能在主布局文件中。
    • 谢谢!!我试试看
    • 我实际上正在休息,直到现在我一直在编写其他东西,将在一个小时后重新开始......并且会 100% 让你知道。我相信它应该工作!谢谢!
    • 这个对我有用 >>> $(document).ready(function(){ $('#btnPrint').click(function(){ }); });