我目前正在开发一个Django项目,我正在使用Django管理员和它的jQuery在提交按钮和真实表单提交之间添加一个模态。
为实现这一目标,我实施了以下内容:
var submit_form;
django.jQuery('form').submit(function (event) {
event.preventDefault();
submit_form = this;
modal.open();
});
在模态关闭函数中我正在使用:
submit_form.submit();
这实际上有效,但我放弃了“保存并添加另一个”和“保存并继续编辑”按钮的Django管理功能。 它们现在都执行与默认提交按钮相同的操作。
添加到另外两个提交按钮的唯一内容是名称属性:
<input type="submit" value="Save" class="default" name="_save">
<input type="submit" value="Save and add another" name="_addanother">
<input type="submit" value="Save and continue editing" name="_continue">
我也检查了事件并在模态关闭函数中使用了event.currentTarget.submit();
,但这实际上也没有用。
有人知道如何正确阻止默认提交并稍后执行吗?
感谢。
答案 0 :(得分:0)
好的,我想出了如何做到这一点。我必须在表单中添加一个隐藏的输入,包括提交按钮中的名称。
以下是我用来填补缺失输入的修改函数:
django.jQuery('form').submit(function (event) {
event.preventDefault();
submit_form = this;
// Append action as hidden input
var action = django.jQuery(this).find('input[type=submit]:focus').attr('name');
var input = django.jQuery('<input>', {
type: 'hidden',
name: action
});
submit_form.append(input[0]);
// Release save button
django.jQuery(':submit').blur();
// Finally open modal window
modal.open();
});