Input
Renders an HTML input.
Calls the keyUp, focusIn and focusOut actions when the corresponding events occur.
Input field props
fieldType: 'input', inputType: 'text', // String - the html input type autofocus: false, // Boolean - whether to autofocus the input on insert placeholder: null, // String - placeholder text of the input trim: true, // Trim spaces from the beginning and end of the input after focus out. This is never applied to inputs with type password, even if true. includeLabelForAttr: true, // Boolean - if true, the label element will have a 'for' attribute that matches the input element's 'id' attribute. validatesOn: ['$inherited', 'focusOut'], // Array of strings
The above props are in addition to the generic field props shown with their default values below.
validationRules: [], // Array of objects defining validation rules. See "Validation". validatesOn: ['submit', 'pushErrors'], // Array of strings, specifing the names of events which should triggger validation. showValidationWhenFocussed: null, // Boolean - unless this is true, validation colours, icons and messages will be omitted for as long as the "focussed" prop of a field is true. The build in input and textarea fields set focussed to true when the user focuesses the element. omitted: false, // Boolean - or object - if true, the field is omitted and also ignored when validating or submitting the form. Can also be an object which defines rules for dynamic omission/inclusion. See /docs/hiding-and-showing-fields. defaultValue: null, // Any - auto set the changeset property for the field to this value when the ChangesetWebform component is rendered and the changeset is created. This value will be overridden by a corresponding property in the data object that is passed to the ChangesetWebform component. labelComponent: null, // Object with { componentClass, props }. // If set, fieldLabel becomes null. // `componentClass` is the imported class of the component to show inside the field label element. // `props` can be included to pass state or data to the component, accessible as {{@props}}. // `@changesetWebform, and @formField are passed to the component. labelMarkdown: null, // String - a markdown string to render as HTML within the label element. hideLabel: null, // Boolean - Hide the label from the user disabled: false, // Boolean - disable the field, but do not hide it. It will still be validated [TODO check] and included when the form is submitted resetWhenOmitted: true, // Boolean - reset the field value and validation when the field is omitted from the form. attrsFromConfig: { classNames: {}, // Object - keys can correspond to those in the classNames settings. See /docs/configure-classnames }, cloneActionsPosition: 'fieldActions', // String - where to place the remove clone button in relation to the cloned field. Can be [TODO] includeLabelForAttr: false, // Boolean - if true, the label element will have a 'for' attribute that matches the input element's 'id' attribute. isFieldset: false, // Boolean - if true, the field options are wrapped in a fieldset element, and the field label is wrapped in a legend element. requiresAriaLabelledBy: false, // Boolean - if true, the field will have an aria-labelledby attribute that points to the field label. This is not required if the field uses semantic element/s such as inputs or textareas, and the "for" attribute of the label correctly points to the semantic element/s.
import ChangesetWebform from 'react-changeset-webforms/src/components/ChangesetWebform.jsx'; const formSchema = { formSettings: { formName: 'inputExample1', hideSubmitButton: true, }, fields: [ { fieldId: 'name', fieldType: 'input', fieldLabel: 'Name', }, ], }; function onUserInteraction(...args) { console.log(args); } export default function InputExampleOne() { return ( <ChangesetWebform formSchema={formSchema} onUserInteraction={onUserInteraction} /> ); }
import ChangesetWebform from 'react-changeset-webforms/src/components/ChangesetWebform.jsx'; const formSchema = { formSettings: { formName: 'inputExample2', hideSubmitButton: true, }, fields: [ { fieldId: 'password', fieldType: 'input', inputType: 'password', fieldLabel: 'Password', placeholder: 'Enter your password here', }, ], }; export default function InputExampleTwo() { return <ChangesetWebform formSchema={formSchema} />; }