FancyGrid Form Fields
by FancyGrid Inc.
HTML
<script src="https://cdn.jsdelivr.net/npm/fancygrid/client/fancy.min.js"></script>
<div id="container"></div>
JavaScript
document.addEventListener("DOMContentLoaded", () => {
function salaryInputFn(value) {
value = value.toString().replace('$', '').replace(/\,/g, '').replace('-', '').replace('.', '');
if (value.length === 0) {
value = '';
} else if (value.length > 6) {
value = value.substr(0, 6);
value = '$' + value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
} else {
value = '$' + value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
return value;
}
function phoneInputFn(value) {
value = parseInt(value.replace(/\-/g, ''));
if (isNaN(value)) {
value = '';
} else {
value = String(value);
}
switch (value.length) {
case 0:
case 1:
case 2:
break;
case 4:
case 5:
case 6:
value = value.replace(/^(\d{3})/, "$1-");
break;
case 7:
case 8:
case 9:
value = value.replace(/^(\d{3})(\d{3})/, "$1-$2-");
break;
case 10:
value = value.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
break;
default:
value = value.substr(0, 10);
value = value.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
}
return value;
}
new FancyForm({
renderTo: 'container',
title: 'User Data',
width: 330,
height: 750,
labelWidth: 80,
defaults: {
type: 'string'
},
items: [{
name: 'id',
type: 'hidden'
}, {
label: 'Name',
emptyText: 'Name',
name: 'name'
}, {
label: 'SurName',
emptyText: 'SurName',
name: 'surname'
}, {
label: 'E-mail',
emptyText: 'E-mail',
name: 'email',
vtype: 'email'
}, {
type: 'date',
label: 'Birthday',
name: 'birthday'
}, {
label: 'Phone',
name: 'phone',
emptyText: 'xxx-xxx-xxxx',
format: {
inputFn: phoneInputFn
}
}, {
type: 'checkbox',
label: 'Married',
name: 'married',
value:...