我在Rails中有一个HTML表单,如
<form name="input">
Title: <input type="text" name="title">
<input type="button" value="Submit">
</form>
我希望title
成为必填字段(即用户不能将其留空。)如何验证用户填写的内容?我应该在客户端还是服务器端执行此操作?我的感觉是,在用户没有填写的情况下,在客户端进行会保存与服务器的通信。
答案 0 :(得分:1)
您可以同时执行这两项操作,但至少应该在服务器上执行此操作。请记住,任何客户端都可以轻松绕过任何客户端验证,这会导致您的代码可能崩溃。
您可以在模型中轻松完成:
validates_presence_of :title
在客户端上有各种方法可以做到这一点。最简单的可能是在输入标记上使用required
html5属性。您还可以使用validatious之类的JavaScript库,您可以使用this Rails plugin根据服务器端验证自动生成客户端验证。
答案 1 :(得分:0)
如果你真的想要安全起见,你必须在服务器上做到这一点。客户端验证仅为方便起见。
答案 2 :(得分:0)
您应该在客户端上进行此操作,因为它对用户来说更方便(更好的用户体验)。
并且,如果客户端验证失败,请在服务器上执行此操作(因为JavaScript已关闭,或者客户端代码中存在错误,或者浏览器不受支持,或者恶意破解者试图发送垃圾邮件到你的服务器等。)。
答案 3 :(得分:0)
在客户端和服务器端进行验证..
客户端验证不安全,可以废弃..,
必须执行服务器端验证,不能绕过