我在 Rails 中有一个 HTML 表单,比如
<form name="input">
Title: <input type="text" name="title">
<input type="button" value="Submit">
</form>
我想title
成为必填字段(即用户不能将其留空。)如何验证用户是否填写了某些内容?我应该在客户端还是在服务器端进行?我的感觉是,在用户没有填写的情况下,在客户端进行操作可以节省与服务器的通信。
我在 Rails 中有一个 HTML 表单,比如
<form name="input">
Title: <input type="text" name="title">
<input type="button" value="Submit">
</form>
我想title
成为必填字段(即用户不能将其留空。)如何验证用户是否填写了某些内容?我应该在客户端还是在服务器端进行?我的感觉是,在用户没有填写的情况下,在客户端进行操作可以节省与服务器的通信。
你可以两者都做,但至少应该在服务器上做。请记住,任何客户端都可以轻松绕过任何客户端验证,这可能会导致您的代码崩溃。
您可以通过以下方式在模型中轻松完成:
validates_presence_of :title
在客户端上,有多种方法可以做到这一点。最简单的可能是required
在输入标签上使用 html5 属性。您还可以使用 javascript 库,如validatedious,您可以使用此 Rails 插件根据您的服务器端验证自动生成客户端验证。
如果您想真正安全,则无论如何都必须在服务器上进行。客户端验证只是为了方便。
您应该在客户端上执行此操作,因为它对用户更方便(更好的用户体验)。
并且,在客户端验证失败的情况下在服务器上执行此操作(因为 JavaScript 已关闭,或者客户端代码中存在错误,或者浏览器不受支持,或者恶意破解者试图向您的服务器发送垃圾等)。 )。
在客户端和服务器端进行验证..
客户端验证不安全,可以禁用..,
必须执行服务器端验证,不能绕过