All Projects β†’ mmontone β†’ cl-forms

mmontone / cl-forms

Licence: MIT license
Web forms handling library for Common lisp

Programming Languages

common lisp
692 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to cl-forms

Fields
Good, solid base to build custom forms in iOS apps, using self-sizing compositional layout.
Stars: ✭ 80 (+175.86%)
Mutual labels:  forms
form.js
πŸ–οΈ Automagic forms.
Stars: ✭ 16 (-44.83%)
Mutual labels:  forms
form-o-fill-chrome-extension
The programmable form filler for developers. Powered by javascript.
Stars: ✭ 84 (+189.66%)
Mutual labels:  forms
dokuwiki-plugin-bureaucracy
Create forms and generate pages or emails from them
Stars: ✭ 43 (+48.28%)
Mutual labels:  forms
boxdetect
BoxDetect is a Python package based on OpenCV which allows you to easily detect rectangular shapes like character or checkbox boxes on scanned forms.
Stars: ✭ 46 (+58.62%)
Mutual labels:  forms
live-form-validation
β›” Nice client-side live form validation for Nette Forms.
Stars: ✭ 55 (+89.66%)
Mutual labels:  forms
municipios-br
Dados em formato aberto sobre municΓ­pios e unidades federativas do Brasil.
Stars: ✭ 58 (+100%)
Mutual labels:  forms
Maily-Form
Forms on any website
Stars: ✭ 29 (+0%)
Mutual labels:  forms
i7n-pdfhtml
pdfHTML is an iText 7 add-on for C# (.NET) that allows you to easily convert HTML and CSS into standards compliant PDFs that are accessible, searchable and usable for indexing.
Stars: ✭ 111 (+282.76%)
Mutual labels:  forms
react-final-form-listeners
A collection of components to listen to 🏁 React Final Form fields
Stars: ✭ 91 (+213.79%)
Mutual labels:  forms
PureForm
No description or website provided.
Stars: ✭ 22 (-24.14%)
Mutual labels:  forms
sweetconfirm.js
πŸ‘ŒA useful zero-dependencies, less than 434 Bytes (gzipped), pure JavaScript & CSS solution for drop an annoying pop-ups confirming the submission of form in your web apps.
Stars: ✭ 34 (+17.24%)
Mutual labels:  forms
ember-formly
JavaScript powered forms for Ember
Stars: ✭ 24 (-17.24%)
Mutual labels:  forms
hookahjs
Add empty/dirty/touched CSS hooks to input and textarea elements automatically (1056 bytes)
Stars: ✭ 21 (-27.59%)
Mutual labels:  forms
react-hubspot
A collection of React hooks for interacting with Hubspot APIs
Stars: ✭ 20 (-31.03%)
Mutual labels:  forms
forms-typed
Want types in your forms? Want to have nested forms? This is the place to be...
Stars: ✭ 79 (+172.41%)
Mutual labels:  forms
vue-use-form
βœ… A Vue.js composition API function to validate forms
Stars: ✭ 97 (+234.48%)
Mutual labels:  forms
ember-do-forms
ember-do-forms handles the icky parts of forms that you don't want to, and leaves the rest to you.
Stars: ✭ 18 (-37.93%)
Mutual labels:  forms
forms-frontend
Frontend for Python Discord forms.
Stars: ✭ 18 (-37.93%)
Mutual labels:  forms
django-safe-filefield
Secure file field, which allows you to restrict uploaded file extensions.
Stars: ✭ 41 (+41.38%)
Mutual labels:  forms

CL-FORMS

CL-FORMS is a web forms handling library for Common Lisp.

Although it is potentially framework agnostic, it runs on top of Hunchentoot at the moment.

It features:

  • Several form field types: String, boolean, integer, email, password fields. And more.
  • Custom fields. CL-FORMS is extensible and it is possible to define new field types.
  • Server and client side validation
  • Rendering backends. Forms can be rendered via CL-WHO, or Djula, or something else; the backend is pluggable. The default renderer is CL-WHO.
  • Themes (like Bootstrap)
  • Control on rendering and layout.
  • Handling of form errors.
  • CSRF protection

Basics

Use defform to define a form. Example:

(defform fields-form (:action "/fields-post")
  ((name :string :value "")
   (ready :boolean :value t)
   (sex :choice :choices (list "Male" "Female") :value "Male")
   (submit :submit :label "Create")))

On your web handler, grab the form via find-form, select a renderer with with-form-rendererand then render the form with render-form:

(let ((form (forms::find-form 'fields-form)))
   (forms:with-form-renderer :who
      (forms:render-form form))

To handle the form, grab it via find-form and then call handle-request (you should probably also call validate-form after). Then bind form fields via either with-form-field-values, that binds the form field values; or with-form-fields that binds the form fields.

(let ((form (forms:find-form 'fields-form)))
    (forms::handle-request form)
    (forms::with-form-field-values (name ready sex) form
       (who:with-html-output (forms.who::*html*)
          (:ul
            (:li (who:fmt "Name: ~A" name))
            (:li (who:fmt "Ready: ~A" ready))
            (:li (who:fmt "Sex: ~A" sex))))))

Plase have a look at the demo sources for more examples of how to use the library

DEMO

There's a demo included. To run:

(require :cl-forms.demo)
(forms.test:run-demo)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].