Mootools提交表单仅在通过ID选择表单时有效

Mootools submit form only works when selecting form through id

本文关键字:表单 ID 选择 有效 提交 Mootools      更新时间:2024-05-23

我一直在尝试通过FF 14上的mootools(1.4.5(提交表单。表单不包含名为 submit 的输入(这通常是问题所在(。我想要的是更改选择以提交表单。半小时后,下面的代码是我第一次尝试让它工作。objSelect 是一个选择对象,包含在我需要提交的表单中。

$(''+objSelect.getParent('form').get('id')).submit();

.

下面的代码不能正常工作的原因是什么?

// Without the explicit cast to string (''+); doesn't work
$(objSelect.getParent('form').get('id')).submit();

也不

// Most obvious way; doesn't work
objSelect.getParent('form').submit();

你不能让具有保留名称的子节点通过旧的 DOM 级 API 导出 - 请参阅此处如何表示表单: http://www.quirksmode.org/js/forms.html#access

所以基本上 - 在元素级别,如果你有:

  • 形式
    • 输入[名称=FOO]
    • 输入[名称=栏]

form.fooform.bar将在表单元素对象上引用这些元素。

您案例中的问题是:

  • 表单(使用.submit.reset方法(
    • 按钮[名称=提交]

现在form.submit停止引用 submit 方法并开始引用输入元素。

您仍需通过执行以下任一操作来提交此表单:

  • 重命名错误的元素或从表单中删除。
  • 通过从干净的表单调用提交来作弊。

new Element("form").submit.call(this.getParent("form"));

基本上,您使用干净的提交方法创建一个新的表单元素。 返回一个对象,并使用另一个"脏"表单作为上下文调用该方法。

这和做一样

Array.prototype.slice.call(arguments)