在JS Helper CakePHP中手动触发事件

我陷入困境.我正在使用JS Helper.我使用了以下代码.
<?php $this->Js->get('#client_id')
        ->event('change',$this->Js->request(array('action' => '../ajax/get_client_location_and_process'),array('update' => '#client_location_process','async' => false,'dataExpression' => true,'method' => 'post','evalScripts' => true,'data' => $this->Js->serializeForm(array('isForm' => True,'inline' => True))
                     )
                   )
        );

我想在页面加载时触发更改事件.如果我使用document.ready方法,那么它无法正常工作.我无法找到JS Helper方法,我们可以在控件上显式触发一些事件.请建议代码如何在需要时在表单元素上执行类似JQuery trigger()的功能.

解决方法

既然你已经在jQuery中发现了.trigger(),你可以将它与你的视图代码一起使用:
<?php 
    // Your view code
?>
<script>$('#client_id').trigger('change');</script>

或者,如果你仍然喜欢通过PHP来做,你可以自己创建帮手,例如:

<?php 
class ArunjsHelper extends AppHelper {
    public $helpers = array('Html');

    function trigger($element,$event,$options = array()) {
        return $this->Html->scriptBlock("$('$element').trigger('$event');");
    }
}

将ArunjsHelper添加到控制器的$helpers:

<?php
class SomeController extends Controller {
    public $helpers = array('Arunjs');

    // Your controller code
}

然后,您可以从视图中调用它:

<h1>Hello</h1>
<p>Your usual view HTML code</p>

<?php // Trigger the change event ?>
<?php echo $this->Arunjs->trigger('#client_id','change'); ?>

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...