2009-08-18 37 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