我有一个要求,我想从我的html表单中调用AJAX,但是我无法从layout.html
继承我的视图我正在尝试使用以下代码进行简单调用:
<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>
但它仍未达到突破点。
答案 0 :(得分:1)
默认的layout.html通常包括web2py_ajax.html,它本身包含jQuery和web2py.js,ajax
函数都需要这两个函数。如果您没有扩展layout.html,那么您需要确保通过其他方式在页面上加载jQuery和web2py.js(最佳方法可能取决于如何生成此页面)。
此外,ajax
来电应为:
ajax('{{=URL("default", "echo")}}', [], 'this_div')
始终使用URL()
功能生成内部网址。仅使用'echo'
会使URL相对于当前页面的URL,这不是您想要的。