Cakephp 如何使用JSH在另一个元素中更改元素';s事件

Cakephp 如何使用JSH在另一个元素中更改元素';s事件,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我想在提交表单时更改元素,而不发送ajax请求。我不知道如何正确地编写它并生成我想要的代码 在cakePHP视图中,我有: $this->Js->get('#testForm')->event('submit', $this->Js->get('#fastRegisterForm')->effect('show')); 它产生: $(document).ready(function () { $("#fastRegisterForm").bind("

我想在提交表单时更改元素,而不发送ajax请求。我不知道如何正确地编写它并生成我想要的代码

在cakePHP视图中,我有:

$this->Js->get('#testForm')->event('submit', $this->Js->get('#fastRegisterForm')->effect('show'));
它产生:

$(document).ready(function () {
    $("#fastRegisterForm").bind("submit", function (event) {
        $("#fastRegisterForm").show();
        return false;
    });
});
我想要:

$(document).ready(function () {
    $("#testForm").bind("submit", function (event) {
        $("#fastRegisterForm").show();
        return false;
    });
});

我认为你应该用另一种方式来设置它

$eventCode = $this->Js->get('#fastRegisterForm')->effect('show');

$this->Js->get('#testForm')->event('submit', $eventCode);

当你调用另一个
js->get
内部的
js->get
忘记JsHelper,自己编写jquery代码时,Cake可能会感到“困惑”。

不过,知道这两种方法很好。但是,如果您有问题,我同意您的看法,请坚持使用jQuery编码,因为Cake所做的只是将提供给它的php代码翻译成jQuery代码。没有任何真正需要知道如何使用JsHelper的需求。除了做一些基本的事情外,它通常会阻碍你,而不是提高你的开发速度。如果可以更快、更高效地直接编写jquery代码,那么使用php包装器生成jquery代码就没有什么意义了。这就是为什么JsHelper将在CakePHP3.0I中被删除,我很少使用JsHelper,如果不是从来没有的话。不管怎样,在需要jQuery的任何时刻直接编写它都会提高您的技能。那为什么不呢!我也直接使用jQuery进行CakePHP编程。这是我问题的解决方案。但无论如何,我将用jQuery编写所有内容。JSHelper有点糟糕。通常,我使用jQuery代码而不是JSHelper。我觉得我有更多的灵活性,我也借此机会学习了更多的jQuery。