2013-06-03 112 views
1

我試圖在查看文件(ctp)的最開始處使用echo $this->Html->script('dynamic_emails');加載一些JavaScript,但目前無法運行。如果我明確地將<script type="text/javascript" src="/mysite/js/dynamic_emails.js"></script>放置在View文件的末尾,它確實有效。JavaScript和CakePHP:如何讓這個簡單的腳本工作?

這是代碼。我懷疑那個函數沒有正確聲明..任何想法?

dynamic_emails.js:

var mytextbox = document.getElementById('mytext'); 
var mydropdown = document.getElementById('dropdown'); 

mydropdown.onchange = function(){ 
    mytextbox.value = 'some text'; 
} 
+1

如果您在呈現id之前運行'getElementById()',那麼它不會找到它。嘗試將'echo $ this-> Html-> script()'腳本行放在佈局底部(而不是視圖),以查看它是否以這種方式工作。或者甚至在視圖的底部應該工作。 (儘管理想情況下這應該會進入某種「onload」事件) – Costa

回答

1

根據您的版本上的蛋糕你的JS應該是在app/Webroot公司/ JS/dynamic_email.js 嘗試把它那裏,然後包括它的幫手,還是隻包括直接

而且它通常是最佳實踐,包括在你的文件的bottom和JS如果您已經使用類似的蛋糕甚至可以在您的佈局

  • 底部更好這可能是在至極的情況下,以大項目中,你會真正受益使用類似jquery
+0

感謝您的鏈接! – musicliftsme

1

是否由輔助生成有效的腳本標籤發出的代碼(正確指向你的JavaScript文件),是通過瀏覽器下載JavaScript文件?值得檢查的結果是你所期望的。

說實話,我不確定在這裏使用CakePHP助手真的會給你帶來多少好處,你可以只包含完整的腳本標記。

相關問題