以下是该方案:
我有两个按钮,一个是带有类型和名称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();
答案 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代码。