Input / Form Elements Vue Components
Form elements allow you to create flexible and beautiful Form layout. Form elements are just well known (List and Vue components) but with few additional components.
There are following components included:
- - list item input element
**f7-input**
- input element**f7-label**
- input label element
Input Properties
Event | Arguments | Description |
---|---|---|
<f7-list-input>, <f7-input> events | ||
focus | (event) | Fired when user focused to input. |
blur | (event) | Fired when user lost focus from input. |
input | (event) | Fired immediately when input value changed. Note: Input event triggers after beforeinput, keypress, keyup, keydown events. |
change | (event) | Fired when blur if value changed. |
input:clear | (event) | Fired when input clear button clicked |
textarea:resize | (event) | Fired if resizable textarea resized. event.detail will contain object with the initialHeight , currentHeight and scrollHeight properties |
input:empty | (event) | Fired when input value becomes empty |
input:notempty | (event) | Fired when input value becomes not empty |
Input Slots
Input Vue component (<f7-list-input>
) has additional slots for custom elements:
**default**
- in case oftype="select"
ortype="textarea"
- element will be placed inside ofselect
ortextarea
tags.**info**
- element will be inserted into container with info message**error-message**
- element will be inserted into container with error message**label**
- element will be inserted into container with input’s label**input**
- element will be inserted instead of input element (input
prop must be also set tofalse
)**root-start**
- element will be inserted in the beginning of<li>
element**root**
/**root-end**
- element will be inserted in the end of<li>
element**content-start**
- element will be inserted in the beginning of<div class="item-content">
element**content**
/**content-end**
- element will be inserted in the end of<div class="item-content">
element**inner-start**
- element will be inserted in the beginning of<div class="item-inner">
element**inner**
/**inner-end**
- element will be inserted in the end of<div class="item-inner">
element**media**
- element will be inserted inside of<div class="item-media">
element
Examples
<f7-block-title>Full Layout / Inline Labels</f7-block-title>
<f7-list inline-labels no-hairlines-md>
<f7-list-input
label="Name"
type="text"
placeholder="Your name"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Password"
type="password"
placeholder="Your password"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="E-mail"
type="email"
placeholder="Your e-mail"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="URL"
type="url"
placeholder="URL"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Phone"
type="tel"
placeholder="Your phone number"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Gender"
type="select"
defaultValue="Male"
placeholder="Please choose..."
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
<option value="Male">Male</option>
<option value="Female">Female</option>
</f7-list-input>
<f7-list-input
label="Birthday"
type="date"
defaultValue="2014-04-30"
placeholder="Please choose..."
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Date time"
type="datetime-local"
placeholder="Please choose..."
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Range"
:input="false"
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
<f7-range slot="input" :value="50" :min="0" :max="100" :step="1"></f7-range>
</f7-list-input>
<f7-list-input
label="Textarea"
type="textarea"
placeholder="Bio"
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Resizable"
type="textarea"
resizable
placeholder="Bio"
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
</f7-list>
<f7-block-title>Full Layout / Stacked Labels</f7-block-title>
<f7-list no-hairlines-md>
<f7-list-input
label="Name"
type="text"
placeholder="Your name"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Password"
type="password"
placeholder="Your password"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="E-mail"
type="email"
placeholder="Your e-mail"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
label="URL"
type="url"
placeholder="URL"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
label="Phone"
type="tel"
placeholder="Your phone number"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Gender"
type="select"
defaultValue="Male"
placeholder="Please choose..."
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
<option value="Male">Male</option>
<option value="Female">Female</option>
</f7-list-input>
<f7-list-input
label="Birthday"
type="date"
defaultValue="2014-04-30"
placeholder="Please choose..."
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Date time"
type="datetime-local"
placeholder="Please choose..."
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Range"
:input="false"
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
<f7-range slot="input" :value="50" :min="0" :max="100" :step="1"></f7-range>
</f7-list-input>
<f7-list-input
label="Textarea"
type="textarea"
placeholder="Bio"
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Resizable"
type="textarea"
resizable
placeholder="Bio"
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
</f7-list>
<f7-block-title>Floating Labels (MD-theme only)</f7-block-title>
<f7-list no-hairlines-md>
<f7-list-input
label="Name"
floating-label
type="text"
placeholder="Your name"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Password"
floating-label
type="password"
placeholder="Your password"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="E-mail"
floating-label
type="email"
placeholder="Your e-mail"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="URL"
floating-label
type="url"
placeholder="URL"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Phone"
floating-label
type="tel"
placeholder="Your phone number"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Resizable"
floating-label
type="textarea"
resizable
placeholder="Bio"
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
</f7-list>
<f7-block-title>Validation + Additional Info</f7-block-title>
<f7-list no-hairlines-md>
<f7-list-input
label="Name"
type="text"
placeholder="Your name"
info="Default validation"
required
validate
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Fruit"
type="text"
placeholder="Type 'apple' or 'banana'"
required
validate
pattern="apple|banana"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
<span slot="info">Pattern validation (<b>apple|banana</b>)</span>
</f7-list-input>
<f7-list-input
label="E-mail"
type="email"
placeholder="Your e-mail"
info="Default e-mail validation"
required
validate
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="URL"
placeholder="Your URL"
info="Default URL validation"
required
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
label="Number"
type="text"
placeholder="Enter number"
info="With custom error message"
error-message="Only numbers please!"
required
validate
pattern="[0-9]*"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
</f7-list>
<f7-block-title>Icon + Input</f7-block-title>
<f7-list no-hairlines-md>
<f7-list-input
type="text"
placeholder="Your name"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
type="password"
placeholder="Your password"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
type="email"
placeholder="Your e-mail"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
<f7-list-input
type="url"
placeholder="URL"
clear-button
>
<f7-icon icon="demo-list-icon" slot="media"></f7-icon>
</f7-list-input>
</f7-list>
<f7-block-title>Label + Input</f7-block-title>
<f7-list no-hairlines-md>
<f7-list-input
label="Name"
type="text"
placeholder="Your name"
clear-button
></f7-list-input>
<f7-list-input
label="Password"
type="password"
placeholder="Your password"
clear-button
></f7-list-input>
<f7-list-input
label="E-mail"
type="email"
placeholder="Your e-mail"
clear-button
></f7-list-input>
<f7-list-input
label="URL"
type="url"
placeholder="URL"
clear-button
></f7-list-input>
</f7-list>
<f7-block-title>Only Inputs</f7-block-title>
<f7-list no-hairlines-md>
<f7-list-input
type="text"
placeholder="Your name"
clear-button
></f7-list-input>
<f7-list-input
type="password"
placeholder="Your password"
clear-button
></f7-list-input>
<f7-list-input
type="email"
placeholder="Your e-mail"
clear-button
></f7-list-input>
<f7-list-input
type="url"
placeholder="URL"
clear-button
></f7-list-input>
</f7-list>
<f7-block-title>Inputs + Additional Info</f7-block-title>
<f7-list no-hairlines-md>
<f7-list-input
type="text"
placeholder="Your name"
info="Full name please"
clear-button
></f7-list-input>
<f7-list-input
type="password"
placeholder="Your password"
info="8 characters minimum"
clear-button
></f7-list-input>
<f7-list-input
type="email"
placeholder="Your e-mail"
info="Your work e-mail address"
clear-button
></f7-list-input>
<f7-list-input
type="url"
placeholder="URL"
info="Your website URL"
clear-button
></f7-list-input>
</f7-list>
<f7-block-title>Only Inputs Inset</f7-block-title>
<f7-list inset>
<f7-list-input
type="text"
placeholder="Your name"
clear-button
></f7-list-input>
<f7-list-input
type="password"
placeholder="Your password"
clear-button
></f7-list-input>
<f7-list-input
type="email"
placeholder="Your e-mail"
clear-button
></f7-list-input>
<f7-list-input
type="url"
placeholder="URL"
clear-button
></f7-list-input>