web2py:如何在Web2py Crud表单中添加JavaScript?
我在使用Web2Py这个框架。现在我想在一个字段(比如说,当字段内容改变时)或者在整个表单提交的时候,添加一些JavaScript代码。但是我发现根本没有办法把这样的参数传递给crud.create或者form.custom.widget。
有没有人知道该怎么做?
2 个回答
0
我觉得没有直接的方法可以做到这一点。一个选择是直接修改web2py生成的HTML,因为它其实就是一串字符串。更简单的方法,我认为是使用jQuery的$(document).ready()函数来绑定事件。
假设你有一个数据库表(这些内容都是从web2py的文档中拿来的):
db.define_table('image',
Field('name'),
Field('file', 'upload'))
还有一个表单:
def upload_image():
return dict(form=crud.create(db.image))
以最简单的方式嵌入到视图中:
{{=form}}
现在你想在名字输入框上添加一个失去焦点的事件处理器(这个要加到视图里):
<script type="text/javascript">
$(document).ready(function(){
$("#image_name").blur(function(){
// do something with image name loses focus...
});
});
</script>
4
当然有办法。最好的方式是去问那些在web2py邮件列表上的人,他们知道怎么做,而不是问那些在Stack Overflow上随便猜答案的用户。:-)
无论如何,假设你有:
db.define_table('image',
Field('name'),
Field('file', 'upload'))
你可以这样做:
def upload_image():
form=crud.create(db.image)
form.element(name='file')['_onchange']='... your js here ...'
form.element('form')['_onsubmit']='... your js here ...'
return dict(form=form)
这个元素使用的是css3/jQuery的语法(但它是在python中被处理的)。