我使用的是Django crispy表单,我希望能够将Submit按钮放置在表单底部旁边的其他位置。
这是我的表格:
from django import forms
from django.core.urlresolvers import reverse
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, Button, Fieldset, ButtonHolder, Submit
from gpsim.models import GPSimConfig
class AddNewGPSimConfigForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(AddNewGPSimConfigForm, self).__init__(*args, **kwargs)
self.initial['name'] = ''
self.helper = FormHelper()
self.helper.form_id = 'add-new-gpsim-config'
self.helper.form_method = 'post'
self.helper.form_action = reverse('gpsim:add_gpsim_config')
self.helper.layout = Layout(
Fieldset(
'',
'name',
'other fields...',
),
ButtonHolder(
Submit('submit', 'Create', css_class='btn-default')
)
)
class Meta:
model = GPSimConfig
模板是一个引导模式弹出窗口。该模态最初显示一个带有可供选择的GPSimConfig项列表的窗体。当用户选择一个项目时,通过JQuery将这个表单加载到一个跨度中。
在模态的底部,有一个取消按钮,我想把提交按钮放在取消按钮旁边的底部,但是当生成脆皮表单时,它会把提交按钮放在最后一个字段之后,并关闭形式。
以下是加载到模态的“模态内容”div中的模板。
{% extends "gpsim/tmpl_gpsim_modal_base.html" %}
{% load staticfiles %}
{% block modal-title %}Add GPSim Config{% endblock %}
{% block modal-body-left %}
Copy GPSim config from<br><br>
{% if my_gpsim_configs %}
My GPSim Configs<br>
<select id="my_gpsim_config_id" name="gpsim_config" class="form-control" onChange="load_span_from_select_change('my_gpsim_config_id','/gpsim/gpsim-config/add/?copy-from-id=', 'add_gpsim_config_span');">
<option>select</option>
{% for gpsim_config in my_gpsim_configs %}
<option value="{{gpsim_config.id}}">{{gpsim_config.name}}</option>
{% endfor %}
{% endif %}
{% endblock %}
{% block modal-body-right %}
<span id="add_gpsim_config_span"></span>
{% endblock %}
{% block modal-submit-button %}
<div id="submit-div">
</div>
{% endblock %}
span“add_gpsim_config_span”是通过Jquery加载表单的地方,提交按钮与表单关闭标记一起放置在那里。我想把Submit放在“Submit div”div中。
有办法做到这一点吗?
我有一个完全相同的问题。不使用jQuery的一种方法是在\uuuu init\uuuu
包含self。帮手form_tag=False
。然后,在“模式内容”中编写表单标记,使其包含模式页眉、正文和页脚。在您的情况下,似乎必须为此使用嵌套块,但以下是我的工作解决方案:
<div class="container">
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<form id="modal-form" action="{% url 'emailme' %}" class="form-horizontal emailme-form" method="POST">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4><span class="glyphicon glyphicon-envelope"></span> Email Me</h4>
</div>
<div class="modal-body">
<div class="modal-form">
{% csrf_token %}
{% crispy emailme_form emailme_form.helper %}
</div>
</div>
<div class="modal-footer">
<button type="submit" name="submit" value="submit" class="btn btn-success pull-right" id="submit-id-submit"><span class="glyphicon glyphicon-send"></span> Send</button>
</div>
</form>
</div>
</div>
</div>
</div>
我知道这是一个古老的问题。您可以通过指定ButtonHolder
的css_class
参数来包装按钮。例如,它的工作原理如下(与字段包装器一起):
self.helper.layout = Layout(
Div(*self.fields, css_class="modal-body"),
ButtonHolder(
Button('cancel', 'Cancel', css_class="btn btn-md btn-default",
data_dismiss="modal"),
Submit('submit', 'Create', css_class='btn-default'),
css_class="modal-footer")
)
)
首先,从FormHelper
中删除按钮文件夹(Submit())
按钮。
然后将按钮放入提交div
,类似于:
<div id="submit-div">
<button class="btn btn-default">Submit</button>
</div>
并在单击按钮时使用jQuery提交表单:
$('#submit-div btn').click(function() {
$("#add-new-gpsim-config").submit();
});
我使用django crispy为一个项目呈现表单,并使用bootstrap作为CSS框架。我有以下代码 但在HTML中,呈现为 注意,当我想要“btn btn default”时,类是“btn btn primary btn btn default” 知道为什么会这样吗?谢谢
问题内容: 是否可以使用Django中的一个提交按钮提交两种不同的形式?我有一个称为“仪器”的形式和四个相等的形式“配置”。现在,我想始终提交一个配置和工具。例如instrument + config 1和instrument + config 2,并且每个配置都有自己的提交按钮。 我已经在配置表单中用一个按钮尝试过: 并调用js函数“ onclick”: 这是我在views.py中的方法: 问题
问题内容: 我有一个表格。在该表格之外,我有一个按钮。一个简单的按钮,如下所示: 但是,当我单击它时,它会提交表单。这是代码: 该按钮应该做的就是编写一些JavaScript。但是,即使看起来像上面的代码一样,它也会提交表单。当我将标签按钮更改为跨度时,它可以完美工作。但不幸的是,它必须是一个按钮。有什么办法可以阻止该按钮提交表单?像例如 问题答案: 我认为这是HTML最令人讨厌的小特性。该按钮必
问题内容: 单击后,我编写了以下代码以禁用网站上的提交按钮: 不幸的是,它没有发送表格。我怎样才能解决这个问题? 编辑 我想绑定提交,而不是表格:) 问题答案: 做到: 发生的事情是您实际上在完全触发该提交事件之前禁用了该按钮。 您可能还应该考虑使用ID或CLASS来命名元素,因此不要在页面上选择所有提交类型的输入。 (请注意,我使用,因此该表单在示例中并未实际提交;请在使用时将其保留。)
问题内容: 好吧,我试图通过按Enter提交表单,但不显示提交按钮。我不希望尽可能地使用JavaScript,因为我希望所有功能都可以在所有浏览器上正常工作(我知道的唯一JS方式就是使用事件)。 现在,表单如下所示: 哪个效果很好。当用户按下Enter键时,提交按钮将起作用,并且该按钮在Firefox,IE,Safari,Opera和Chrome中不显示。但是,我仍然不喜欢该解决方案,因为很难知道
问题内容: 我有一个Django项目,该项目在一页上具有多种形式(具有不同的标记),可以提交以产生不同的效果。在所有情况下,我都希望将用户重定向回同一页面,因此在我看来,我使用提交表单然后重定向到原始页面的模式。在至少一种情况下,两种形式之间的唯一区别是提交按钮的值。 在我看来,我有代码(这是我的视图函数第一次访问): 在模板中,第一个表单具有一个提交按钮,例如 我以为这样可以,但是当我提交该表格