2012-02-08 51 views
1

我創建了一個頁面,我在輸入字段上使用JavaScript驗證器(使用javascript-coder.com腳本),但我無法使用我提交表單,因爲它與驗證腳本正在使用的函數衝突。我現在的提交按鈕:由於JS衝突,HTML替代HTML提交按鈕的替代方法

<a href="" class="submit" onClick="this.form.submit();">Submit</a> 

當我使用一個標準的HTML提交按鈕,腳本工作正常。有沒有其他的方式或功能提交表單而不會與驗證腳本衝突?我對JS沒有足夠的信心開始將驗證腳本分開。

請幫助,並請詢問您是否需要任何其他信息。 謝謝,

+1

「與驗證腳本正在使用的函數衝突」是什麼意思?你究竟得到了什麼錯誤? – Domenic 2012-02-08 05:24:30

+1

如果一個標準的HTML提交按鈕有效,爲什麼你不能只用一個? – 2012-02-08 05:29:50

+0

請解釋什麼是以前的條件,你添加了什麼,以及衝突是什麼。如果你只是注入了驗證腳本,它是如何工作的?驗證何時發生?你檢查了控制檯嗎? – Joseph 2012-02-08 05:57:58

回答

0

試試這個

<a href="" class="submit" onClick="document.form.submit();">Submit</a>

1

如果這是你的實際代碼,您正在使用不正確的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() 
} 
+0

這可能有幫助。我進一步調查後會回來。感謝您的意見。 – 2012-02-08 06:54:17