2008-11-27 54 views
3

我對此有點大驚小怪,所以我想知道是否有任何SOE之前遇到過它。奇怪的Firefox輸入錯誤

我有一個基本平坦的頁面,其中有許多輸入=文本,按照默認值A,B,C,D,E的順序排列在標記中。該標記看起來像這樣在視圖源中:

<td class="action invoice"> 
    <a href="#foo">Toggle Invoice</a> 
    <div class="data"> 
    <input type="text" class="formatted" value="A" /> 
    <a href="#" class="notes" title="Add Note">Add Note</a> 
    </div> 
</td> 

迭代了許多行A-> E。

該頁面由ASP.NET 2.0應用程序創建。版本1僅爲「user.aspx?id = 1」版本2在內部由類似於「users/1」的RESTlike HTTPModule映射到「user.aspx?id = 1」。

版本1沒問題。版本2 渲染後給我的輸入值依次爲E,A,B,D,E,但我沒有看到特別的原因。

我可以查看源和值=「X」是正確的,並在螢火DOM檢查默認值是正確的,但是不是。

  • 這不是CSS問題 - 從頁面中刪除CSS。
  • 這不是JS問題 - JS已關閉。
  • 這不是一個HTML問題 - 標記在所有情況下都是完全相同的。

唯一的區別是如何請求標記。這就像Firefox以某種方式與服務器糾纏在一起。

有沒有人聽說過這樣的事情?我驚呆了。

編輯:這也是一個FF問題。 IE,Opera和Chrome在頁面上都很好。

編輯2:我的字面意思是請求的路徑。一個版本是要求http://localhost/user.aspx?id=1,其他(失敗)版本是http://localhost/users/1並且此版本由HTTPModule映射到第一個路徑。 name =不會幫助,因爲默認值不是人類輸入的,它們在源服務器中。

回答

1

我敢打賭,它與映射的url沒有文件擴展名有關,所以內容類型沒有被firefox正確推導出來。嘗試在ASP代碼中明確地將內容類型設置爲「text/html」,並查看是否修復了它。

+0

可能接近真相,因爲添加doctype定義似乎可以解決它。 – annakata 2008-12-09 10:21:49

+0

我會考慮這個答案,但任何有此問題的人都應該在下面看到我自己的回覆。從來沒有聽說過Firefox團隊的任何事情,我已經從公司那裏找到了我曾經遇到過這個問題的公司。 – annakata 2010-11-04 11:19:55

0

您的意思是C,A,B,D,E?我敢打賭,一個屬性中的一個不加引號或不匹配的「正在搞亂C的td標籤的解析。當表中有一個標籤不能正確包含在tr/td/etc中時,firefox將它移動到。頁面

+0

Nope:肯定E,A,B,D,E,重複一個值,不存在並回想起DOM瀏覽器具有defaultValue的正確數據。我會重申,這不會是標記問題,因爲* exact *相同的標記可以從其他瀏覽器中正確呈現。 – annakata 2008-11-28 08:35:27

0

你說:「唯一的區別是標記是如何要求」 你能就此展開這是某種形式的DHTML交付, 或都在工作和非工作情況下,完整的HTML頁面?

是否添加不同的名稱=「」參數幫助?Firefox沒有 在某些情況下,嘗試當 你回到以前的頁面保存先前輸入的值,我已經看到了它弄糊塗 是出現名稱衝突時。

編輯:你說的名字不會幫助,但你試過嗎?

+0

當然:見編輯#2 – annakata 2008-11-28 09:45:56

0

我已經不完全找到了解決這個和它的重複性似乎是一些因素我還沒有確定的條件,但我有一些偶然的證據表明,這似乎是東西在FF發生的組合(可能是對另一個標籤中內容的反應 - 推測)和該頁面沒有嚴格的文檔類型

我會留下這個開放的情況下,以防其他人遇到並找到這個奇怪的小gremlin的原因。

0

Firefox在刷新和後退/前進導航之間保存表單數據非常積極。

我想我會嘗試添加一個autocomplete="off"屬性的表單輸入,看看是否有幫助。

我想firefox可能會將當前的URI與引用的URI進行比較,看看它應該如何處理它保存的表單數據。在你的第二個例子中,兩者不匹配。

0

如果您可以創建一個重新創建此案例並將其提交給Firefox團隊,以便他們可以修復它。

0

通過HTML Validator運行您的代碼,以查看是否有任何缺失的語法片段導致它呈現奇怪。