2012-07-03 17 views
6

私は状況を抱えています。私はJS Helperを使用しています。私は次のコードを使用しました。JS Helperで手動でイベントをトリガーするCakePHP

<?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()を見つけたので

+0

私はJsHelperでJQuery.trigger()と同等のコードを見つけるためにしようとしています。どんな助けでも大歓迎です。 –

+3

個人的には、この種のためにJSHelperが作られたとは思えません。本当に私の経験から得た便利なAjaxリクエストのためだけです。あなたがJSファイルを.jsファイルに書き出すだけで、あなたはより多くのものをより明確に/より簡単に作ることができると言います... – Dunhamzzz

+0

あなたはあなたが探しているものを持っていますか? – uzyn

答えて

12

、あなたは自分のビューのコードと一緒にそれを使用することができます。

<?php 
    // Your view code 
?> 
<script>$('#client_id').trigger('change');</script> 

を別の方法として、あなたはまだPHP経由でそれを行うことを好む場合、あなたはおそらく、あなた自身を作ることができますコントローラで$helpersArunjsHelperを追加し、例えば:

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

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

ヘルパー:

<?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'); ?> 
関連する問題