UiKit plugin
Integrate with the UIkit framework
The plugin supports
UIkit v3.0.3.
Usage
The following piece of code is the starting point to validate the form made in UIKit:
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.3/css/uikit.min.css" />
<link rel="stylesheet" href="/vendors/@form-validation/umd/styles/index.min.css" />
</head>
<body>
<form id="demoForm" method="POST">...</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.35.3/es6-shim.min.js"></script>
<script src="/vendors/@form-validation/umd/bundle/popular.min.js"></script>
<script src="/vendors/@form-validation/umd/plugin-ui-kit/index.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function(e) {
FormValidation.formValidation(
document.getElementById('demoForm'),
{
fields: {
...
},
plugins: {
uikit: new FormValidation.plugins.UiKit(),
...
},
}
);
});
</script>
</body>
</html>
The sample code above assumes that the FormValidation files are placed inside the vendors
directory. You might need to change the path depending on where you place them on the server.
The next sections list out some examples of various forms made with UIKit.
Using the npm packages
If you are using a bundler such as
Webpack,
Rollup,
Parcel or
Vite, etc., to bundle
your application, then it's recommended to use the FormValidation NPM packages.
$ npm install @form-validation/bundle
$ npm install @form-validation/plugin-ui-kit
- Import and use the UiKit plugin:
import { formValidation } from '@form-validation/bundle/popular';
import { UiKit } from '@form-validation/plugin-ui-kit';
formValidation(
document.getElementById('demoForm'),
{
fields: {
...
},
plugins: {
uikit: new UiKit({
...
}),
...
},
}
);
Horizontal form
Stacked form
Multiple fields on the same row
In order to add the correct class for error message and the field element when it is a valid or invalid, we need to specify the CSS selector of the field container.
By default, the UIKit plugin will look for the .uk-margin
element. In the following example, the firstName
and lastName
fields are placed inside .uk-width-2-5
containers. Meanwhile, the city
, state
and zipcode
fields can be found inside the .uk-width-1-5
containers.
The rowSelector
option will be used to help the plugin determine the field containers as following:
uikit: new FormValidation.plugins.UiKit({
rowSelector: function(field, ele) {
switch (field) {
case 'firstName':
case 'lastName':
return '.uk-width-2-5';
case 'city':
case 'state':
case 'zipcode':
return '.uk-width-1-5';
default:
return '.uk-margin';
}
}
}),
Multiple fields on the same row
Changelog
- Add the npm package
- The plugin is renamed from
Uikit
to UiKit
- Support UIKit v3.0.0-rc.8