我知道,使用Javascript,我可以使用以下内容告诉表单提交:
document.forms[0].submit()
但是,如果页面上有多个表单(可以是任何顺序),我将如何定位此表单中的提交链接:
<form action="/services/auth/" method="post">
<div id="auth-allow-container" class="button-container">
<a class="Butt" id="auth-allow" type="submit" href="#"><span>SUBMIT</span></a>
<a class="Butt CancelButt" id="auth-disallow" href="#home"><span>CANCEL</span></a>
</div>
</form>
..这样就好像用户点击了SUBMIT?
答案 0 :(得分:2)
你可以创造一个功能:
function submitFormById(id) {
var el = document.getElementById(id);
while ( el && el.tagName.toLowerCase() != 'form') {
el = el.parentNode;
}
el && el.submit();
}
然后你就像这样使用这个函数:
submitFormById('auth-allow');
submitFormById('auth-disallow');
两者都将提交表格。
答案 1 :(得分:1)
为表单指定name属性。然后你可以做document.name.submit()。即
<form name="MyForm" ....>
<input ... />
</form>
然后您就可以document.MyForm.submit()
编辑:
正如您所说,您无法更改html,添加ID的解决方案也无济于事。您必须确定页面上哪个数字表单元素是特定的,并且执行docuemnt.forms [x] .submit(),其中x是此表单的索引。
答案 2 :(得分:1)
放入链接:
onclick="this.parentNode.parentNode.submit();"
如果你改变dom结构,这有点脆弱,但它是这种形式的通用链接
<强>更新强>
document.addEventListener("DOMContentLoaded", function() {
document.getElementById("auth-allow").addEventListener("click", submithAuthForm, false);
}, false);
function submithAuthForm(){
document.getElementById('auth-allow').parentNode.parentNode.submit();
}