Lexington has been awarded a grant from Astro, to celebrate. Get a 30% discount. Apply code LEXINGTON30 at checkout.
Let’s create a tag input!
Tag inputs are a great way to add tags to a list. They are used in many different applications, such as social media, to allow users to add new tags to a post.
Advantages of tag inputs:
The structure of the tag input
x-data
attribute is used to define the data of the componentx-for
attribute is used to loop through the tags
array:key
attribute is used to uniquely identify each item in the loopx-text
attribute is used to display the value of the tag
variable@click
attribute is used to add a new tag to the tags
array when the user clicks the close buttonNote: The classes are remove for clarity.
<div
x-data="{
tags: [],
addTag(tag) {
if (tag.trim() !== '') {
this.tags.push(tag.trim());
}
},
removeTag(index) {
this.tags.splice(index, 1);
}
}">
<!-- Tag Input -->
<div
class="w-full"
x-data="{ newTag: '', tags: [] }">
<!-- Input Field -->
<input
x-model="newTag"
@keydown.enter.prevent="
if (newTag.trim() !== '') {
tags.push(newTag.trim());
newTag = '';
}
"
type="text"
placeholder="..."
/>
<!-- Tags will be added here -->
<div>
<template
x-for="(tag, index) in tags"
:key="index">
<div
>
<span x-text="tag"></span>
<button
@click="tags.splice(index, 1)"
class="ml-2">
<!--- Close Icon goes here -->
</button>
</div>
</template>
</div>
</div>
</div>
Hope you enjoyed this tutorial.
/Michael Andreuzza
Get access to all themes
Unlock all themes for $199 for forever! Includes lifetime updates,
new themes, unlimited projects, and support
— No subscription
needed.