我正在创建一个自定义 Joomla 2.5 表单域。这旨在显示在 Joomla 的管理员面板中。
该字段允许用户添加任意数量的选项。每个选项都由用户在单独的文本框中输入。每个文本框都是在单击(+)
按钮时动态创建的(使用 jQuery)
jQuery(lihtml).insertBefore( jQuery(plusbutton).closest('li') );
lihtml
要插入的 html 代码 在哪里。
用户还可以通过单击(-)
按钮删除任何现有选项
jQuery(minusbutton).closest('li').remove();
这些所有功能都可以正常工作,尽管在删除一个选项后,如果我们添加一些其他选项,那么一切都会很好。但是以下顺序会导致问题:
REMOVE-OPTION -> SAVE
选项已删除,但保存不起作用
REMOVE-OPTION -> SAVE -> ADD-OPTION
表单已提交,因此单击按钮时会调用保存方法。
我知道有一些冲突,可能与 DOM 或 jQuery 内存泄漏有关,但不确定。
我可以看到该save
按钮更新了task
字段(隐藏),但只有在单击按钮customfield.apply
后才会调用实际提交。(+)
NOTE:
除了保存之外,同样的情况也适用于 Joomla 中的任何工具栏按钮,例如另存为新、取消等。