您好,登錄后才能下訂單哦!
這篇文章主要介紹yii驗(yàn)證碼為什么不刷新,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
yii驗(yàn)證碼不刷新是什么原因
后臺登陸調(diào)用驗(yàn)證碼,點(diǎn)擊驗(yàn)證碼不刷新,沒有反應(yīng)(所有驗(yàn)證碼配置,參數(shù)都是正確的)。
找錯的時(shí)候發(fā)現(xiàn)可以刷新驗(yàn)證碼的頁面比不可以刷新驗(yàn)證碼的頁面多了一段 js 代碼,用來處理點(diǎn)擊驗(yàn)證碼刷新的事件。
為什么會少了一段代碼?原來就是因?yàn)榭刂破鞣謩e調(diào)用了 renderPartial 和 render. 下面就說說它們的區(qū)別:
在進(jìn)行頁面輸出渲染的時(shí)候。
render 輸出父模板的內(nèi)容,將渲染的內(nèi)容,嵌入父模板。
renderPartial 則不輸出父模板的內(nèi)容。只對本次渲染的局部內(nèi)容,進(jìn)行輸出。
同時(shí)還有個(gè)重要的區(qū)別:
render 函數(shù)內(nèi)部默認(rèn)執(zhí)行 processOutput($output) 函數(shù), 會將把組件,比如 CTreeView 里面注冊到 CClientScript 里面的需要的腳本進(jìn)行渲染輸出。
而 renderPartial() 默認(rèn)不自動渲染輸出客戶端腳本,需要進(jìn)行參數(shù)的指定,才會輸出:
renderPartial($view,$data=null,$return=false,$processOutput=false)
指定 processOutput 為 true 即可。
就像我們遇到的問題,用 renderPartial 時(shí),頁面沒有輸出驗(yàn)證碼刷新的那段 js 。所以就沒有反應(yīng)。
以上是“yii驗(yàn)證碼為什么不刷新”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。