2014-04-10 31 views
0

我有,我想從我的HTML表單讓AJAX調用的要求,但我不能從layout.html繼承我的看法,我使用下面的代碼嘗試一個簡單的調用:web2py的AJAX調用

<input name="name" onclick="ajax('echo', [], 'this_div')"/> 

<div id='this_div'></div> 

在控制器我有寫下面的代碼:

def echo(): 
    pass 

我只是檢查它是否達到了轉折點,但是當我點擊它時什麼也沒有發生。

請讓我知道我是否缺少任何東西。

編輯

我加入了以下的HTML js文件:

<script src="{{=URL('static','js/modernizr.custom.js')}}" type="text/javascript" charset="UTF-8"></script> 
<script src="{{=URL('static','js/web2py.js')}}" type="text/javascript" charset="UTF-8"></script> 
<script src="{{=URL('static','js/jquery.js')}}" type="text/javascript" charset="UTF-8"></script> 
<script src="{{=URL('static','js/val/dist/jquery.validate.js')}}" type="text/javascript"></script> 
<script src="{{=URL('static','js/jquery-ui-1.10.3.custom.js')}}" type="text/javascript"></script> 

但它仍然沒有命中斷點。

回答

1

默認的layout.html通常包含web2py_ajax.html,它本身包含jQuery和web2py.js,這兩者都是ajax函數的工作所必需的。如果你不擴展layout.html,那麼你需要確保jQuery和web2py.js通過其他方式加載到頁面上(最好的方法可能取決於這個頁面是如何生成的)。

此外,ajax調用應該是:

ajax('{{=URL("default", "echo")}}', [], 'this_div') 

始終使用URL()函數生成內部URL。僅使用'echo'會使URL相對於當前頁面的URL,而這不是您想要的。

+0

我已經添加了.js文件的引用,但它仍然不起作用。 – gliese581g

+0

您的網址錯誤 - 請參閱最新答案。 – Anthony

+0

非常感謝!它爲我節省了很多時間。 – gliese581g