Input / Form Elements Vue Components
Form elements allow you to create flexible and beautiful Form layout. Form elements are just well known List View ( and List Item 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>