2013-04-17 94 views
12

我有一個表格<input type="submit"。在鉻提交沒有做任何事情。在開發人員工具中的「網絡」選項卡上,我什麼都看不到。開發人員工具也沒有錯誤。同時,如果我保存頁面並打開保存的頁面,則在按下提交按鈕後,我會看到「網絡」選項卡中顯示的內容。這發生在Chrome和Firefox中。這在IE中按預期工作。提交按鈕不起作用

有沒有人有事後看,我應該看看?

編輯:我不需要直接的答案,我只需要知道,我應該在哪裏看。如果有人發佈了一個方向,這會幫助我解決我的問題,我會接受它作爲一個正確的答案。

EDIT2:一個頁面的結構是這樣的:

html 
    head 
    body 
     div 
     div 
      form 
      form 
      form 
      form 
      form 
       input 
       input 
       table 
       table 
        tbody 
         tr..td..input type=submit 

EDIT3:我們發現的實際問題,這是在一個頁面的鏈接,包含href="#",點擊該鏈接後提交停下來因爲#被添加到URL的末尾,並且由於表單的action是空的,所以它從當前URI獲取URI,其中包含#,因此瀏覽器不會提交,而是在當前頁面上跳轉。

+8

我們需要代碼... – Jace

+0

@Jace當我從我的web應用程序打開一個頁面時,問題就在那裏,但是如果我保存一個頁面,提交會做一些事情。所以HTML代碼在這裏沒有幫助。我也不需要直接的答案,問題是什麼。我只需要一個方向,看什麼。 – dhblah

+1

...它在表格內嗎? 表單格式是否正確,或者是否打破了HTML? 表單是否有動作和方法,它們是否正確?你是在本地開發,並使用相對路徑,當它應該在服務器/本地主機上運行?我們不知道...... – Norguard

回答

10

如果您沒有使用任何javascript/jquery進行表單驗證,那麼表單的簡單佈局將如下所示。

HTML文檔的主體中:

<form action="formHandler.php" name="yourForm" id="theForm" method="post">  
    <input type="text" name="fname" id="fname" />  
    <input type="submit" value="submit"/> 
</form> 

你需要確保你有表單標籤內提交按鈕,併爲其分配適當的行動。比如發送到一個php文件。

要獲得更直接的答案,請提供您正在使用的代碼。

您可能會發現使用如下:http://www.w3.org/TR/html401/interact/forms.html

+0

非常感謝您,我認爲可能存在的一個問題是,該表單中存在空操作屬性。我會進一步調查。 – dhblah

+0

在我的情況下,我有一個絕對定位的div,沒有覆蓋在按鈕上的內容。從一個例子複製並粘貼標記,花了我好幾天的時間來確定這個看不見的元素是罪魁禍首。 –

12

您使用的是HTML5嗎?如果是這樣,請檢查您的表單中是否有<input type="hidden">以及required。刪除那個required屬性。 Internet Explorer不會採用這個屬性,所以它可以工作,但Chrome會。

+0

這是現貨。我不知道要花多長時間才能想到這一點。 –

3

檢查,如果你使用任何類型的網頁上的jQuery/JavaScript驗證,並嘗試關閉它,看看會發生什麼。您可以使用瀏覽器的開發人員工具查看是否正在加載任何帶有驗證或驗證的JavaScript文件。您還可以查找隱藏的表單元素(即設置爲顯示的樣式:無;或類似的東西),並確保沒有隱藏的驗證錯誤的那些未呈現。

+1

你救了我,但你有什麼想法如何使用相同的按鈕來實現表單提交和表單驗證? –

+0

是的,理想情況下,它應該與許多驗證庫和工具一起工作。他們應該配合表格。如果表單提交不起作用,那麼可能是有問題。例如,我在Nuget Gallery開源網站使用的特定版本的jquery validate插件中發現了一個錯誤。它是基於文件擴展名正確驗證的,但是該錯誤阻止了顯示驗證錯誤。所以我進去修復了這個bug,雖然我懶懶地沒有發出pull請求來修正它們庫中的bug。 –

3

我今天遇到這個問題,這個問題被我阻止事件的默認操作文件的onclick:

document.onclick = function(e) { 
    e.preventDefault(); 
} 

文檔的onclick通常用於事件委託,但它是錯誤的,以防止默認爲每一個事件,你必須只爲需要的元素:

document.onclick = function(e) { 
    if (e.target instanceof HTMLAnchorElement) e.preventDefault(); 
} 
1

我遇到了一個朋友的HTML代碼和他的情況下,他失蹤了引號。

例如:

<form action="formHandler.php" name="yourForm" id="theForm" method="post">  
<input type="text" name="fname" id="fname" style="width:90;font-size:10>  
<input type="submit" value="submit"/> 
</form> 

在這個例子中,在輸入文本FNAME缺失報價只會呈現提交按鈕未使用和表單不會提交。

當然,這是一個不好的例子,因爲我應該首先使用CSS;)但無論如何,請檢查所有單引號和雙引號,以查看它們是否正確關閉。

此外,如果您有像中心這樣的標籤,請將其移出表單。

<form action="formHandler.php" name="yourForm" id="theForm" method="post"> 
<center> <-- bad 

看起來很奇怪,它可能會產生影響。