是否可以使用单个“提交”按钮提交多个表单?如果是这样,这样做的方法是什么?谢谢。
问问题
1399 次
1 回答
2
严格来说,这不是一个web2py
问题,而是一个 HTML(DOM - 文档对象模型)并用javascript
问题来操作 DOM。
您可以使用 . 单击一个按钮,一次性提交 2 个(或更多表单)javascript
。
像这样:-
<form id="id1" ...> ...</form>
<form id="id2" ...> ...</form>
<button onclick="document.getElementById('id1').submit();document.getElementById('id2').submit();" />
当您必须将请求发布到现在需要同时处理的 web2py 应用程序中的两个单独的 url/函数时,您可能会遇到问题?
正确的方法可能是您可能需要编写一个函数,将表单对象更改为字段集作为单个表单的一部分。
在 django 中,表单集正是这样做的,并将多个表单转换为仅属于模板中的 1 个单一 HTML 表单的字段集,因此原来的“多个表单”成为前端中 1 个单一表单的一部分。
像这样:-
<form method="post" action="">
{{ formset.management_form }}
{% for form in formset %}
{{ form.id }}
<ul>
<li>{{ form.title }}</li>
{% if formset.can_delete %}
<li>{{ form.DELETE }}</li>
{% endif %}
</ul>
{% endfor %}
</form>
web2py
:-
http://www.web2pyslices.com/slice/show/1458/two-forms-on-one-page-with-custom-forms-to-update-record
def new():
form = SQLFORM.factory(db.contact,db.groups)
if form.accepts(request.vars):
_id_user = db.contacts.insert(**db.contacts._filter_fields(form.vars))
form.vars.contact = _id_user
id = db.groups.insert(**db.groups._filter_fields(form.vars))
response.flash = 'User registered successfully'
return locals()
它仅返回您的 web2py 模板 1 单一表单。
于 2012-11-04T03:56:23.063 回答