表单中提交的Javascript表单包含一个提交按钮

时间:2011-11-15 12:17:19

标签: javascript dom javascript-events

以下是该方案: 我有两个按钮,一个是带有类型和名称submit的表单,另一个是一个用onclick事件提交表单的链接。

由于我的表单已经有一个名为submit的提交按钮,因此不会发送javascript函数form.submit()。因为我使用的是框架,所以我无法更改提交按钮的名称。

我尝试将样式display: none添加到提交按钮,但这没有帮助。

有什么建议吗?

代码

<form method="post" action="../../process_form.php">
submit button
<input type="submit" value="submit" class="button" id="label_forsubmit" name="submit">

link
<a class="standart_link" onclick="javascript: YAHOO.wsc.ExpensecontrolOperationsSubmit('a','0','b');" href="javascript:">cancel</a>
</form>

Javascript部分

   var btn = document.getElementById(btn_div);
   var parentForm = YAHOO.util.Dom.getAncestorByTagName(btn_div, 'form' );
   parentForm.submit.style.disabled = 'none';
   parentForm.submit();

1 个答案:

答案 0 :(得分:2)

我建议提醒框架的创建者。应该在问题的根源上修复这个严重的问题,并且调整元素的名称对他们来说应该是一个很小的改变。

与此同时,您可以在click事件期间删​​除表单元素,并将其存储在临时变量中。然后,调用submit,最后在onsubmit事件期间重新添加按钮。

像这样的东西,例如:

(function () { 
    var btn, sibling, 
        form = document.getElementById("myForm");

    window.linkSubmit = function () {
        if (form.submit.tagName) { // is submit actually an element?
            btn = form.submit;
            sibling = btn.nextSibling;
        }

        YAHOO.wsc.ExpensecontrolOperationsSubmit('a','0','b');
    }

    form.onsubmit = function () {
        if (btn) {
            this.insertBefore(btn, sibling);
            btn = sibling = void 0;  // Reset the variables
        }
    }
})();

并且,将链接标记更改为:

<a class="standart_link" onclick="linkSubmit()" href="javascript:">cancel</a>

作为旁注,我建议完全从HTML标记中抽象出JS代码。