client_side_validations

 

client_side_validations是一个rails3下比较不错的前台校验插件。 它能把模型中的校验做为前台的校验,更支持自定义校验,支持像SimpleForm 和Formtastic等的Formbuilders。

安装

Gemfile中加入一下代码:

gem 'client_side_validations', '~> 3.0.2'  

然后运行bundle install

初始化

rails g client_side_validations:install  

以上这个命令会拷贝两个文件到项目中,分别是:

config/initializers/client_side_validations.rb
public/javascripts/rails.validations.js

用法:

在layout中包含rails.validations.js:

<%= javascript_include_tag 'jquery', 'rails.validations'-%>

比如有模型Book, 后端校验如下:

class Book < ActiveRecord::Base
    validates :name. :presence => true
end

打开form的验证开关, 就可以看到js的校验效果了:

<%= semantic_form_for @book, :validate => true do |form| -%>
	<%= form.inputs do %>
		<%= form.input :name %>
	<% end %>

	<%= form.buttons do %>
		<%= form.commit_button true %>
	<% end %>
<% end %>  

如果不想使用前台校验,设置 :validate => false 即可。

接下来你就可以看看效果了。更具体的文档请看github项目地址:https://github.com/bcardarella/client_side_validations

 

 

文章转自  http://www.thoughtrails.com/gems/client_side_validations

 

如果 `validations` 属性不起作用,可能是以下几个原因导致的: 1. 忘记在组件选项中导入 `VeeValidate`。确保在组件的选项中导入了 `VeeValidate`: ```js import { ValidationObserver, ValidationProvider } from 'vee-validate' export default { components: { ValidationObserver, ValidationProvider }, // ... } ``` 2. 没有在 `data` 中声明需要验证的表单数据。`validations` 属性中的验证规则需要和表单数据进行绑定才能生效。例如: ```js data() { return { email: '', password: '', validations: { email: { required, email }, password: { required, min: minlength(6) } } } }, ``` 在这个例子中,我们在 `data` 中声明了需要验证的表单数据 `email` 和 `password`,并且将验证规则绑定到了这些表单数据上。 3. 没有在表单元素上使用 `v-model` 和 `v-validate` 指令。表单元素需要使用 `v-model` 来绑定表单数据,使用 `v-validate` 来指定验证规则。例如: ```html <template> <form> <div> <label for="email">Email</label> <input id="email" type="email" name="email" v-model="email" v-validate="'required|email'"> <span v-show="errors.has('email')">{{ errors.first('email') }}</span> </div> <div> <label for="password">Password</label> <input id="password" type="password" name="password" v-model="password" v-validate="'required|min:6'"> <span v-show="errors.has('password')">{{ errors.first('password') }}</span> </div> <button type="submit">提交</button> </form> </template> ``` 在这个例子中,我们在表单元素上使用了 `v-model` 来绑定表单数据 `email` 和 `password`,使用 `v-validate` 来指定了验证规则。 如果以上几个步骤都已经正确执行,但是 `validations` 属性仍然不起作用,可能是其他问题导致的,比如版本不兼容等。你可以查看 VeeValidate 的文档,或者在 GitHub 上提交一个 issue 寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值