我正在使用vue.js和REST Services(java)设计一个Web应用程序。
我有一个非常复杂的形式: - 类型检查:电子邮件是格式良好的电子邮件 - 密码检查:密码文本字段和重新输入密码文本字段匹配? - 2个下拉菜单:如果我在下拉列表1中选择选项A,则在下拉列表2中,选项{R,T}应仅出现。
因此,处理这个问题的一个简单方法是: 1.使用javascript或某些vue插件对客户端进行适当的检查。 2.重新检查服务器上的所有内容,确保没有人“破解”提交的json。
主要问题是我会对支票进行两次编码。
什么是更好的方法?
祝你好运
答案 0 :(得分:0)
无论如何,您应该至少将验证保留在服务器上。
最简单的方式: 在服务器上保持验证,在收到无效数据时发送错误消息。 在客户端,您可以用红色标签向用户显示从服务器收到的错误消息,以便用户知道出了什么问题。
好方法: 在客户端和服务器上保持验证。在将表单提交给服务器之前,用户应该知道某些内容是否无效。
为什么客户端和服务器都是: 如果遗漏了某些内容,或者用户绕过了UI验证,则服务器将处理REST。 有人甚至可能只使用API,而不是你的表单,然后他们需要知道出了什么问题。
答案 1 :(得分:0)
在评论时,出于安全原因,您无法跳过后端表单验证。
然后,您必须考虑是否值得在前端(Vue)部分验证表单。通常是在提交之前的可用性问题(显示更好的错误消息,更改输入颜色等)。有几个库可以帮助您实现此目的,例如
vue-validator:这是由Kazuya开发的最受欢迎的一个 Kawaguchi,Vue的核心成员之一。 (与...不兼容 Vue 2)
vue-form-generator:一个Vue.js插件,它还可以构建表单以及验证。我已经在Vue.js Feed上写了一篇关于它的小型教程。
vee-validate:是一个与Vue 1和Vue 2兼容的新模块。它看起来非常有前景,是我将在此使用的模块 教程。
Vuelidate:Vue.js 2.0基于模型的简单验证
从here和其他几个提取(检查github)。
Vue提供内置表单验证功能(输入类型,预期输入(字符串,数字等)),您可以从计算属性中获取优势以执行更复杂的计算(即有效的电子邮件)和显示/隐藏用户填写表单时的错误。
我通常在表格(类型,无效字符,最大长度,最小长度等)和后端进行双重检查,基本验证。但最终取决于你的决定。
希望它有所帮助!