Запуск события вручную в 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 триггер (), как функциональность для элементов формы, когда мне это нужно.
1 ответ
Решение
Так как вы уже узнали о .trigger()
в jQuery вы можете просто использовать его вместе с кодом вида:
<?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'); ?>