Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
DavyJonesLocker/client_side_validations-simple_form: Simple Form plugin for ClientSideValidations

DavyJonesLocker/client_side_validations-simple_form: Simple Form plugin for ClientSideValidations

14 hours ago

ClientSideValidations-SimpleForm #

Gem Version</a> npm version</a> Ruby Build Status</a> JavaScript Build Status</a> Maintainability</a> Coverage Status</a>

Simple Form plugin for ClientSideValidations

Installation ##

In your Gemfile add the following:

gem 'simple_form'
gem 'client_side_validations'
gem 'client_side_validations-simple_form'

Order matters here. simple_form and client_side_validations need to be required before client_side_validations-simple_form.

Follow the remaining installation instructions for ClientSideValidations

JavaScript file ###

Instructions depend on your technology stack.

This package extends the jQuery-free, DOM-first ClientSideValidations runtime.

When using Webpacker ####

Make sure that you are requiring Client Side Validations before the Simple Form plugin.

Add the following package:

yarn add @client-side-validations/simple-form

Then, according to the CSS framework and module system you are using, add one of the following lines to your app/javascript/packs/application.js pack:

// No framework / Generic frameworks / Bootstrap 3 with import syntax
import '@client-side-validations/simple-form'

// Bootstrap 4+ with import syntax import '@client-side-validations/simple-form/dist/simple-form.bootstrap4.esm'

// No framework / Generic frameworks / Bootstrap 3 with require syntax require('@client-side-validations/simple-form')

// Bootstrap 4+ with require syntax require('@client-side-validations/simple-form/dist/simple-form.bootstrap4.esm')

When using Sprockets ####

Make sure that you are requiring Client Side Validations before the Simple Form plugin.

According to the web framework you are using, add one of the following lines to your app/assets/javascripts/application.js, after //= require rails.validations

// No framework / Generic frameworks / Bootstrap 3
//= require rails.validations.simple_form

// Bootstrap 4+ //= require rails.validations.simple_form.bootstrap4

If you need to copy the asset files from the gem into your project, run:

rails g client_side_validations:copy_assets

Note: If you run copy_assets, you will need to run it again each time you update this project.

Migration Guide ##

Removing jQuery Dependency ###

client_side_validations-simple_form now plugs into the DOM-first ClientSideValidations runtime and no longer assumes jQuery is present.

Follow the main ClientSideValidations migration guide for the public API changes. In particular, load the current DOM-first ClientSideValidations bundle before loading this package, and update any custom code that still expects jQuery-wrapped objects.

Custom Simple Form builders now receive native DOM elements in their add and remove hooks, so custom overrides should use DOM APIs such as .closest(), .querySelector(), and .classList.

If you vendor the compiled assets with rails g client_side_validations:copy_assets, run that generator again after upgrading so the copied Simple Form assets stay in sync with the current ClientSideValidations bundle.

Usage ##

The usage is the same as ClientSideValidations, just pass validate: true to the form builder

<%= simple_form_for @book, validate: true do |book| %>
  <%= book.input :name %>
<% end %>

Per-input options are done with :validate

<%= book.input :name, validate: { presence: true, uniqueness: false } %>

Authors ##

Brian Cardarella

Geremia Taglialatela

We are very thankful for the many contributors

Versioning ##

This gem follows Semantic Versioning

Want to help? ##

Please do! We are always looking to improve this gem. Please see our Contribution Guidelines on how to properly submit issues and pull requests.

Legal ##

DockYard, LLC © 2012-2023

@dockyard

Licensed under the MIT license

Chat with me