是否可以将代码附加到CakePHP生成的document.ready块?

时间:2013-04-29 05:49:52

标签: javascript cakephp

我目前使用CakePHP JsHelper如下,我希望在文档准备就绪时运行其他JavaScript代码:

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

上面的代码在我的default.ctp中,并插入到本网站应用程序的每一页中。我想在1页内添加其他代码。代码会附加一个按钮,其中包含某些属性和事件。是否可以这样做?

我已经尝试过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抱怨道。

1 个答案:

答案 0 :(得分:1)

成功!

只需按如下方式附加到CakePHP缓冲区:

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

而且,正如评论者在上面指出的那样,一切都与2结果documentReady函数一致。