0

我目前使用 CakePHP JsHelper 如下,我想在文档准备好时运行额外的 JavaScript 代码:

    echo $this->Js->get(':submit')->event('click', "$(':submit').attr('disabled','disabled');
        $(':submit').val(\"Saving...\");
        ",
             array('stop' => false));

上面的代码在我的 default.ctp 中,并被插入到这个网站应用程序的每个页面中。我想在一页内添加附加代码。该代码将附加一个带有某些属性和事件的按钮。有可能这样做吗?

我已经尝试过使用 2 个 documentReady 函数(1 个由 CakePHP 生成,另一个在 *.js 文件中)无济于事。

以下是第二个 .js 文件的当前内容:

//source: http://marcgrabanski.com/articles/cakephp-ajax-quick-save-jquery
$(document).ready(function() {
$('<input type="button" value="Insta-Save"/>')
.click(function(){ 
$(this).parents("form:first").ajaxSubmit({
success: function(responseText, responseCode) {
$('#ajax-save-message').hide().html(responseText).fadeIn();
setTimeout(function(){
$('#ajax-save-message').fadeOut();
}, 5000);
}
});
return false;
})
.appendTo('form div.submit');
});

我也尝试使用代码块,但 CakePHP 坚持将代码填充在页面的最顶部,因此 IE 很自然地抱怨。

4

1 回答 1

1

成功!

只需附加到 CakePHP 缓冲区,如下所示:

echo $this->Js->buffer('alert("Hello world!");');

而且,正如评论者在上面指出的那样,使用 2 个生成的 documentReady 函数一切正常。

于 2013-04-29T05:59:45.897 回答