如果這是你的實際代碼,您正在使用不正確的this
關鍵字。當從內聯函數調用時,這指的是正在調用的元素,即錨標記。 (有關更多詳細信息,請參閱此處:http://www.quirksmode.org/js/this.html。)據我所知,您需要從表單標記提交表單。
什麼,你應該使用是一樣的東西的其中之一:
document.getElementById('myForm').submit();
document.forms[0].submit();
document.getElementsByClassName('submit')[0].submit(); /* not IE8 compatible */
另外,如果你不能依靠其ID標籤的元素,在頁面上已知順序是和您需要IE瀏覽器的兼容性,您可以繼續搜索「向上」的DOM,直到找到該按鈕位於表單,然後提交:
var parentelem = this.parentNode;
while (parentelem.nodeName.toLowerCase() != 'form') {
parentelem = parentelem.parentNode;
if (parentelem == null) { break; }
}
if (parentelem != null) {
parentelem.submit()
}
來源
2012-02-08 05:30:45
lpd
「與驗證腳本正在使用的函數衝突」是什麼意思?你究竟得到了什麼錯誤? – Domenic 2012-02-08 05:24:30
如果一個標準的HTML提交按鈕有效,爲什麼你不能只用一個? – 2012-02-08 05:29:50
請解釋什麼是以前的條件,你添加了什麼,以及衝突是什麼。如果你只是注入了驗證腳本,它是如何工作的?驗證何時發生?你檢查了控制檯嗎? – Joseph 2012-02-08 05:57:58