2010-06-13 121 views
1

好吧,我會盡量給出我可以提供的大部分細節。document.getElementById('form_name')。submit()不能正常工作

該網站不適合與IE6一起使用。如果它能夠與IE8和Chrome一起使用會很好,但是可以在以後完成。

該網站爲PHP。提交位於另一個PHP文件中的表單,該文件位於DIV標記內的index.php位置。

如果我單獨打開表單,提交工作正常,但是當我嘗試在索引頁上提交時,Firefox錯誤控制檯表示該文檔未定義。表單代碼通過PHP逐行回顯。保存用戶名和密碼的文本字段,表單代碼如下:

<form id="entrar" action="entrar.php" method="post" onsubmit="javascript:checkvalues();"> 
    <a href="javascript:document.getElementById('entrar').submit();">ENTRAR</a> 
</form> 

有什麼大不了的?我在這裏錯過了什麼?我知道這很愚蠢,但我無法弄清楚。

+0

檢查您的頁面源,並確保沒有其他元素具有相同的ID。 – TheDeadMedic 2010-06-13 17:09:04

+0

Ewww!不要使用鏈接提交表單!這隻會激怒那些習慣於按Enter鍵的人來提交它們!使用提交按鈕! – animuson 2010-06-13 17:09:56

+0

它被認爲是糟糕的做法,現在將JavaScript放置在錨的href中。將標記與邏輯分開也很好。如果您在使用所有瀏覽器的腳本時遇到問題,那麼jQuery將對您非常有用。 – 2010-06-13 18:02:47

回答

3

在jQuery回答之前。

<form id="entrar" action="entrar.php" method="post" onsubmit="javascript:checkvalues();"> 
    <a id="entrar-link" href="#">ENTRAR</a> 
</form> 

<script> 
(function() { 
var entrar = document.getElementById('entrar'), 
link = document.getElementById('entrar-link'); 

link.onclick=function() { entrar.submit() } 

})(); 
</script> 

底線是不使用href執行JavaScript。不要顯眼地做(在腳本元素中)。確保在標記之後出現script,或者如果您打算將其放在頭部,則可以在窗口加載/ dom準備好時調用該函數。

雖然老實說,我不知道爲什麼你只是做:

<input type=submit value=go> 

除非你做了一段離奇的文體目的,你也可以使用大概爲input type=image,如果你不知道如何正確設置提交風格。

+0

我無法使用輸入按鈕。對我來說不幸的是,我不負責網頁的佈局,並且客戶想要一個文本鏈接。我即將放棄JavaScript的想法,並將CSS路徑重新設置爲提交按鈕作爲文本。 – 2010-06-14 12:56:44

+0

它不應該是關於網站管理員想要的內容,而應該是關於用戶最方便的內容。你知道,那些實際上會帶來利潤的人。 – animuson 2010-06-15 04:16:28