2

我在 Rails 中有一个 HTML 表单,比如

<form name="input">
  Title: <input type="text" name="title"> 
  <input type="button" value="Submit">
</form> 

我想title成为必填字段(即用户不能将其留空。)如何验证用户是否填写了某些内容?我应该在客户端还是在服务器端进行?我的感觉是,在用户没有填写的情况下,在客户端进行操作可以节省与服务器的通信。

4

4 回答 4

2

你可以两者都做,但至少应该在服务器上做。请记住,任何客户端都可以轻松绕过任何客户端验证,这可能会导致您的代码崩溃。

您可以通过以下方式在模型中轻松完成:

validates_presence_of :title

在客户端上,有多种方法可以做到这一点。最简单的可能是required在输入标签上使用 html5 属性。您还可以使用 javascript 库,如validatedious,您可以使用此 Rails 插件根据您的服务器端验证自动生成客户端验证。

于 2012-11-11T23:15:18.460 回答
0

如果您想真正安全,则无论如何都必须在服务器上进行。客户端验证只是为了方便。

于 2012-11-11T23:17:06.060 回答
0

您应该在客户端上执行此操作,因为它对用户更方便(更好的用户体验)。

并且,在客户端验证失败的情况下在服务器上执行此操作(因为 JavaScript 已关闭,或者客户端代码中存在错误,或者浏览器不受支持,或者恶意破解者试图向您的服务器发送垃圾等)。 )。

于 2012-11-11T23:19:17.163 回答
0

在客户端和服务器端进行验证..

客户端验证不安全,可以禁用..,

必须执行服务器端验证,不能绕过

于 2012-11-12T00:10:23.117 回答