Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Membatasi Jumlah Karakter Pada Form Input Dengan JavaScript

Tentu, berikut adalah artikel tentang cara membatasi jumlah karakter pada form input menggunakan JavaScript.


 

 

Dalam pengembangan web, kita seringkali perlu membatasi jumlah karakter yang dapat dimasukkan pengguna ke dalam sebuah form input. Meskipun HTML memiliki atribut maxlength, ada situasi di mana kita memerlukan fungsionalitas tambahan, seperti memberikan umpan balik real-time kepada pengguna tentang sisa karakter yang tersedia.

Dengan menggunakan JavaScript, kita dapat dengan mudah mengimplementasikan fungsionalitas ini untuk memberikan pengalaman pengguna yang lebih baik.

 

1. Struktur HTML

 

Pertama, kita akan membuat sebuah textarea dan elemen span untuk menampilkan jumlah karakter yang tersisa.

HTML

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pembatasan Karakter</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="container">
        <h2>Ketik Komentar Anda</h2>
        <textarea id="komentar" maxlength="150" rows="5" placeholder="Maksimal 150 karakter..."></textarea>
        <p>Sisa karakter: <span id="sisa-karakter">150</span></p>
    </div>
    <script src="script.js"></script>
</body>
</html>
  • textarea: Elemen input di mana pengguna akan mengetik.
  • id="komentar": Digunakan sebagai pengenal unik untuk diakses di JavaScript.
  • maxlength="150": Atribut HTML ini sudah membatasi jumlah karakter secara otomatis. Namun, kita akan menggunakan JavaScript untuk memberikan umpan balik visual.
  • span id="sisa-karakter": Elemen ini akan kita perbarui dengan jumlah karakter yang tersisa secara real-time.

 

2. Styling CSS (style.css)

 

Kita tambahkan sedikit CSS agar tampilan form lebih rapi.

CSS

body {
    font-family: sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #f4f4f4;
}

.container {
    width: 400px;
    padding: 20px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

textarea {
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 4px;
    resize: none;
    font-size: 1em;
}

p {
    text-align: right;
    margin-top: 10px;
    color: #555;
}

 

3. Logika JavaScript (script.js)

 

Ini adalah bagian terpenting. Kita akan menggunakan event listener untuk memantau setiap kali pengguna mengetik dan memperbarui hitungan sisa karakter.

JavaScript

// Dapatkan elemen-elemen DOM
const komentarElement = document.getElementById('komentar');
const sisaKarakterElement = document.getElementById('sisa-karakter');

// Tentukan batas maksimal karakter
const batasKarakter = komentarElement.getAttribute('maxlength');

// Tambahkan event listener untuk memantau input
komentarElement.addEventListener('input', function() {
    // Dapatkan jumlah karakter saat ini
    const jumlahKarakter = komentarElement.value.length;
    
    // Hitung sisa karakter
    const sisaKarakter = batasKarakter - jumlahKarakter;
    
    // Perbarui teks pada elemen span
    sisaKarakterElement.textContent = sisaKarakter;

    // Ubah warna teks jika karakter hampir habis (opsional)
    if (sisaKarakter <= 10) {
        sisaKarakterElement.style.color = 'red';
    } else {
        sisaKarakterElement.style.color = 'green';
    }
});

 

Penjelasan Kode JavaScript

 

  • const komentarElement = document.getElementById('komentar');: Kita mengambil elemen textarea dari DOM berdasarkan ID-nya.
  • const batasKarakter = komentarElement.getAttribute('maxlength');: Kita mengambil nilai maxlength dari atribut HTML. Ini adalah praktik yang baik karena kita tidak perlu menulis ulang nilai batas di JavaScript.
  • addEventListener('input', ...): Ini adalah event listener yang akan mendeteksi setiap kali ada perubahan pada konten elemen textarea, baik itu karena ketikan, paste, atau lainnya.
  • komentarElement.value.length: Properti .value memberikan kita isi dari textarea, dan .length memberikan jumlah karakternya.
  • sisaKarakterElement.textContent = sisaKarakter;: Kita memperbarui konten teks dari elemen <span> dengan nilai sisaKarakter yang baru dihitung.
  • if (sisaKarakter <= 10): Ini adalah logika opsional untuk memberikan umpan balik visual tambahan, misalnya dengan mengubah warna teks menjadi merah ketika sisa karakter kurang dari atau sama dengan 10.

Dengan menggabungkan ketiga file di atas, Anda akan memiliki sebuah form input yang membatasi karakter dan memberikan umpan balik real-time yang informatif kepada pengguna. Ini adalah contoh sederhana namun efektif tentang bagaimana JavaScript dapat meningkatkan interaktivitas dan pengalaman pengguna pada sebuah halaman web.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_jqzcx1jqzcx1jqzc
Gemini_Generated_Image_4y7hx34y7hx34y7h
Gemini_Generated_Image_8u3is88u3is88u3i
Gemini_Generated_Image_sif5j6sif5j6sif5

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek