2009-08-18 83 views
0

我有一個複雜的表單,它使用模糊事件觸發更新到MySQL。有驗證將禁用提交按鈕,直到完成所有必填字段。問題是,即使用戶沒有完成所有的字段,用戶仍然在提交表單。JQuery +表單域無法正確插入數據庫100%

我的理論是,由於某種原因,數據庫忽略了一些從窗體發送的值,但驗證仍然認識到所有的字段都已經完成。

據我所知,Internet Explorer 6是罪魁禍首。它適用於任何現代瀏覽器(Firefox,Chrome,Safari,IE7 + 8),但正在宕機6.

對於沒有發送到數據庫的值,可能的原因是什麼?即使用戶如果已經成功更新,則在該字段旁邊顯示「檢查」標記。

數據庫更新應該以某種方式延遲嗎? IE6中是否有這個缺陷?

任何建議將不勝感激!

+1

發佈您的jQuery – Jason 2009-08-18 06:24:15

+1

你永遠不應該信任JS驗證,也不應該實現服務器端驗證。 JS驗證可以是一個附加的,服務器端是必須的。 – RaYell 2009-08-18 06:25:59

+0

你可以發佈一些HTML和JavaScript? IE6與JavaScript關閉時的行爲方式相同嗎?你也在服務器端進行驗證嗎?你有沒有設置[Fiddler](http://www.fiddler2.com/fiddler2/)來查看發送的內容? – 2009-08-18 06:28:25

回答

1

Server-sde驗證無疑是這裏的方法。它應該是您在添加客戶端代碼之前通過「增強」用戶體驗寫入的第一件事。

它很難說這個問題可能是什麼,沒有任何樣本代碼,但我有幾個問題:

貴按鈕開始禁用,即是屬性禁用嵌入在HTML =「禁用」?

當用戶填寫所有字段時,該按鈕將被啓用。如果他們清除了其中一個字段,它又是殘疾人嗎?

是否有可能您正在使用一些JavaScript(甚至是CSS),它被您的「現代」瀏覽器識別但不是IE6?

你能夠自己複製它嗎?

您是否在提交時驗證表單域?是否有可能你的領域容易受到SQL注入?

+0

1.按鈕從一開始就禁止 2.是 3.這可能是這種情況 4.不,沒有能夠在所有複製錯誤。 5.所有字段在完成和提交過程中進行驗證。我有各種例程來防止SQL注入。 – Choog 2009-08-18 12:36:20