提交表单详细信息的更好方法是什么

时间:2012-10-17 16:13:50

标签: javascript html forms

我正在开发一个使用PHP作为服务器端的ERP系统。所以我需要非常小心我的网站/系统的安全性。我还将使用JavaScript进行客户端验证。所以我想确保客户端已启用JavaScript,当然我也将验证数据服务器端,但我不想要不必要的服务器调用,主要是我关注表单...以及客户端填写的数据并提交..那么我应该用什么来提交我的数据?

默认HTML使用JavaScript在此处提交和验证(注意:如果客户端关闭了JavaScript,则无用)

<input type="submit" name="Add Data" />


或者在JavaScript的帮助下使用锚标记<a>提交(我发现这有意义,好像JavaScript已关闭,他无法提交数据)

<a href="#" onclick="document.getElementById("form_id").submit();">Submit</a>

如果我使用<a>标记提交数据,或者我应该坚持使用默认的submit按钮,那么有什么不好之处吗?如果我使用<a>提交表单数据,那么我将能够使用JavaScript验证数据吗?

3 个答案:

答案 0 :(得分:4)

  

所以我想确保客户端已启用JavaScript

你做不到。即使您设计的系统在没有JavaScript的情况下中断,也有人可以对其进行逆向工程并手动提交错误数据。

  

当然我也将验证数据服务器端

这是解决方案

  

但我不想要不必要的服务器调用

如果你因为关闭了JavaScript而导致重大性能或负担担心的人得到了足够的意外提交错误,我会吃掉我的帽子。

  

默认HTML使用JavaScript提交并验证

是。将JavaScript绑定到表单上的submit事件。

  

<a href="#"

不要那样做。

  

如果我使用<a>标签提交数据

,那么有什么不好吗?
  • 看起来不像会提交表单
  • 它不会在屏幕阅读器中的表单模式中显示
  • 如果JavaScript因任何原因无效,它会无声地失败
  

我应该坚持使用默认的提交按钮吗?

是!

答案 1 :(得分:2)

尽可能使用浏览器默认值。坚持使用提交按钮,并将您的验证绑定到表单上的submit事件。这样,无论是否使用JavaScript,您的表单都可以正常工作。

答案 2 :(得分:0)

不,您无法将客户端操作视为可靠或安全。如果我故意想要,我可以阻止验证,但保持JavaScript为提交工作。

至于你的问题,这很简单:你要么用户能够在没有JavaScript的情况下提交。这不是什么“更好”的问题,而是你的要求的问题。