Membuat Duplikasi Form dengan Jquery (Dynamic Form)

dokumen-dokumen yang mirip
Pemrograman Web PRAKTIKUM 3 CSS. TUJUAN BELAJAR Mahasiswa dapat menggunakan css untuk mengatur gaya tampilan elemenhtml

DAFTAR PUSTAKA. Fathansyah. (2007). Basis Data. Informatika : Bandung.

Langkah Cara Membuat Form Login Menggunakan PHP dan MySQL Langkah 1: Membuat Tabel MySQL User/Pengguna

Membuat Web Chatting dengan Ajax Jquery, PHP, dan Bootstrap [Part 2]

Pemrograman Web PRAKTIKUM 6. Query Data 2. TUJUAN BELAJAR Mahasiswa dapat menggunakan PHP dan MySQL untuk mengupdate data

Nama: ahmad edi purwanto. Nim: Tugas uts web statis. Tutorial cara penggunaan suatu framework CSS

TUTORIAL APLIKASI WEB Dengan PHP dan MySQL

CSS. inheritance (pewarisan)

6. HTML & CSS. PTI15010 Pemrograman Web. Agi Putra Kharisma, S.T., M.T. Genap 2014/2015. Desain slide ini dadaptasi dari University of San Fransisco

Membuat Display Produk dalam Layout Box 4 Kolom

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

LEMBAR KERJA PRAKTIKUM. - JavaScript Alert yang ditampilkan browser saat membuka halaman home/index.html :

Tutorial Implementasi Jquery Mobile dan JSP. 1. Definisi Jquery Mobile

MODUL PRAKTIKUM SISTEM TERDISTRIBUSI

Membuat Desain Custom Input (Checkbox + Radio Button) pada Form

CSS RANDY CAHYA WIHANDIKA, S.ST., M.KOM

DAFTAR ISI DAFTAR ISI... 1 KATA PENGATAR... 2 BAB I PENDAHULUAN Latar Belakang Rumusan Masalah Tujuannya...

Tutorial CSS Desain Layout 1 Dengan HTML5 dan CSS

BAB V DESAIN WEB CSS

Cara Memasukan Font Baru Ke Dalam Web Menggunakan CSS

Secara garis besar, terdapat 3 cara menginput kode CSS, yaitu metode Inline Style, Internal Style Sheets, dan External Style Sheets.

BAB VI DESAIN WEB RESPONSIF

Beralih dari Input Submit ke Button dan Cara Mudah Membuat Button Bootstrap

MEMBUAT WEBSITE SEDERHANA DENGAN HTML 5

Membuat Chatbox Sederhana dengan Ajax jquery dan PHP PDO

KAJIAN 3 Web Responsive

BAB IV CASCADING STYLE SHEET (CSS)

TUTORIAL RUBY ON RAILS

Membuat Top Fixed Responsive Navbar Twitter Bootstrap

Author : Minarni, S.Kom.,MM

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

[SANGAT MUDAH] Cara Membuat Tab dengan Bootstrap

MODUL III CASCADING STYLE SHEET

Perancangan Web. Perancangan Web. Oleh : Moh. Sulhan. By : MOH.SULHAN

buat Lightbox mu sendiri dengan jquery

CSS (Cascade Style Sheet)

SImple Pop-Up Modal dengan CSS3 dan Jquery

Create Read Update Delete using PHP MySql

CSS Cascading Style Sheet

Membuat Themes Wordpress sendiri - Part 1

BAB X AKSES DAN MANIPULASI DATA

TUGAS UTS WEB STATIS. : Apriyanto Wibowo NIM : : Teknik Informatika S1 (Malam) Pengertian framework

1. Apa itu Bootstrap?

[SANGAT MUDAH] Cara Membuat Slide Show dengan Bootstrap 3

Perkenalan Glyphicon Bootstrap dan Cara Mudah Menggunakannya

BAB III CASCADING STYLE SHEET

BAB V IMPLEMENTASI SISTEM

Halaman Utama. Tampilan Menu. Universitas Sumatera Utara

CSS? Contoh sederhana Selector Mekanisme mengaplikasikan CSS Elemen-elemen CSS

Masih tentang bagaimana membuat layout dengan CSS, kita lanjutkan untuk membuat layout yang lain. Berikut ini adalah desain layout yang akan kita buat

DASAR-DASAR CSS DASAR-DASAR CSS By: Rohi Abdulloh A. PENGENALAN

window.location='karyawan/homeuser.php'</script>"; }else if($c['level']=="manajer"){

CSS Cascading Style Sheet

MODUL PRATIKUM 04A PEMROGRAMAN BERBASIS WEB (CCP119)

Lampiran Kode Program

PENGENALAN HTML - 2. Anda bisa menambahkan beberapa cell (kolom) untuk membuat satu baris cell (kolom).

TUTORIAL JQUERY Langkah Tepat menjadi Web Designer Handal, menguasai JQuery JavaScript Library, jalan membuat halaman website lebih atraktif

Pemrograman Basis Data Berbasis Web

Atribut ACTION tempat menspesifikasikan URL yang akan digunakan sebagai pemroses field input form.

X/HTML5 Form. Auriza Akbar 25 Mei 2012

Materi 9 Komputer Aplikasi IT (KAIT) 2 SKS Semester 1 S1 Sistem Informasi UNIKOM 2014 Nizar Rabbi Radliya

Pemrograman Web Sisi Client Pertemuan 3 PI

<title>kamus Indonesia Karo Online</title> <!-- Bootstrap core CSS --> <link href="css/bootstrap.min.css" rel="stylesheet">

Cascading Style Sheet (CSS) Didik Dwi Prasetya

2011 Ahmad Amarullah

Publish: 7 Juni 2012 Author & Copyright: Johan Status: FREE tutorial

TUTORIAL JQUERY Langkah Tepat menjadi Web Designer Handal, menguasai JQuery JavaScript Library, jalan membuat halaman website lebih atraktif

Cara Membuat website dengan Dreamweaver

Teks dan Background SERIF SANS-SERIF MONOSPACE

MODUL PRAKTIKUM PEMROGRAMAN INTERNET

KARTU BIMBINGAN TUGAS AKHIR MAHASISWA

CSS. Cascading Style Sheet. Spesifikasi lengkap di :

Membuat Button Dengan CSS

How to Create Simple Web (2) - Slice

CSS Cascading Style Sheet

Keuntungan Memisahkan presentation sebuah dokumen dari content document itu sendiri Mempermudah dan mempersingkat pembuatan dan pemeliharaan dokumen w

Validasi Form. Contoh Validasi Form

XHTML dan Dasar-dasar CSS XHTML

Web Programming (WP) Step 2 [ HTML & PHP BASIC]

LEMBAR KERJA PRAKTIKUM

CSS dan Tata Letak Pemrograman Internet (TKE ) Program Studi Teknik Elektro, Unsoed

AJAX dengan jquery Part 3

LAMPIRAN. A. Source Code Halaman Utama

Pengenalan Perancangan Web 2017

BAB IV IMPLEMENTASI KARYA. Dalam bab ini akan diuraikan implementasi hasil karya yang merupakan

Percobaan 1 : Mengatur Width Dan Height Hasil :

MEMBUAT MASTER BERITA Teknik Informatika Sopingi, M.Kom

Membuat Toko Buku dengan PHP - MySQL

Cascading Style Sheet

PEMROGRAMAN WEB. Indra Gunawan, ST., M.Kom., CEH., CHFI

TUTORIAL HTML CSS Langkah Tepat menjadi Web Designer Handal, menguasai HTML & CSS, jalan membuat halaman website cantik dan menarik

BAB IV HASIL DAN PEMBAHASAN. Sistem Informasi Penjualan dan Pembelian Barang Pada Toko Touring

FRAMEWORK CSS :CSS BOOTSTRAP

Triswansyah Yuliano

MODUL III CASCADING STYLE SHEET

Membuat Responsive dan Fleksibel Image Gallery dengan JQuery Fleximage

CSS (Cascading Style Sheets)

Membuat Tempelate Menggunkanan Boostrap

LAPORAN RESMI. Boxes

SURAT KETERANGAN Hasil Uji Program Tugas Akhir. Dengan Hasil : SUKSES / GAGAL

Transkripsi:

Membuat Duplikasi Form dengan Jquery (Dynamic Form) Oleh: Dimas Agung Noviyanto Membuat dynamic field mungkin bukan hal baru bagi seorang web programmer, field inputan yang dapat ditambah maupun di hapus secara dinamis kadang sangat dibutuhkan dalam beberapa kasus. Kali ini saya akan berbagi bagaimana membuat form dinamis yang dapat di duplikasi dan dihapus sesuka kita. Membuat dynamic field mungkin bukan hal baru bagi seorang web programmer, field inputan yang dapat ditambah maupun di hapus secara dinamis kadang sangat dibutuhkan dalam beberapa kasus.

Kali ini saya akan berbagi bagaimana membuat form dinamis yang dapat di duplikasi dan dihapus sesuka kita. Pertama kita buat sebuah form yang nantinya dapat di duplikasi, buat file index.php dan masukkan kode berikut: <body> <div id="wrapper"> <form action="#" method="post" id="sign-up_area" role="form"> <div id="entry1" class="clonedinput"> <h2 id="reference" name="reference" class="heading-reference">entry #1</h2> <fieldset> <!-- Text input--> <label class="label_fn control-label" for="first_name">nama Depan: <input id="first_name" name="first_name" type="text" placeholder="" class="input_fn form-control" required=""> <p class="help-block">this field is required.</p> <!-- Text input--> <label class="label_ln control-label" for="last_name">nama Belakang: <input id="last_name" name="last_name" type="text" placeholder="" class="input_ln form-control"> <!-- Select Basic --> <label class="label_ttl control-label" for="title">jenis Kelamin: <select class="select_ttl form-control" name="title" id="title"> <option value="" selected="selected" disabled="disabled">pilih jenis kelamin</option> <option value="lk">laki-laki</option> <option value="pr">perempuan</option> </select> <!-- end.select_ttl --> <!-- Multiple Checkboxes (inline) --> <label class="label_checkboxitem control-label" for="checkboxitem">status <div class="input-group form-group"> <label class="checkbox-inline" for="checkboxitem-0"> name="checkboxitem" id="checkboxitem-0" value="1"> Single

<label class="checkbox-inline" for="checkboxitem-1"> name="checkboxitem" id="checkboxitem-1" value="2"> Menikah <label class="checkbox-inline" for="checkboxitem-2"> name="checkboxitem" id="checkboxitem-2" value="3"> Janda <label class="checkbox-inline" for="checkboxitem-3"> name="checkboxitem" id="checkboxitem-3" value="4"> Duda <!-- Prepended text--> <label class="label_twt control-label" for="twitter_handle">twitter: <div class="input-group form-group"> <span class="input-group-addon">@</span> <input id="twitter_handle" name="twitter_handle" class="input_twt form-control" placeholder="" type="text"> <!-- Text input--> <label class="label_email control-label" for="email_address">email: <input id="email_address" name="email_address" type="text" placeholder="contoh: dimas@mail.com" class="input_email form-control"> <!-- end #entry1 --> <!-- Button (Double) --> <p> <button type="button" id="btnadd" name="btnadd" class="btn btn-info">tambah form</button> <button type="button" id="btndel" name="btndel" class="btn btn-danger">hapus form diatas</button> </p> <!-- Textarea --> <label class="control-label" for="notes">alamat: <textarea id="notes" name="notes" class="form-control">tulis alamat sesuai dengan KTP</textarea> <!-- Multiple Checkboxes (inline) --> <div class="checkbox"> <label> <input type="checkbox" value="">ya, Saya menyetujui syarat dan ketentuan.

<!-- Button --> <p> <button id="submit_button" name="submit_button" class="btn btn-primary">submit</button> </p> </fieldset> </form> <!-- end wrapper --> </body> Dalam form diatas kita akan menambahkan fungsi click pada id btnadd untuk menduplikasi form, dan btndel untuk menghapus form, dimana class clonedinput sebagai parameternya. Jangan lupa untuk meng include file-file jquery yang dibutuhkan pada elemen head: <head> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.cs s" rel="stylesheet"> <script src="js/jquery-1.11.2.min.js"></script> <script type="text/javascript" src="js/clone-form-td.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"> </script> </head> Tambahkan juga kode css berikut di dalam elemen head: <style> #wrapper { width:595px; margin:0 auto; legend { margin-top: 20px; #attribution { font-size:12px; color:#999; padding:20px; margin:20px 0; border-top:1px solid #ccc; #O_o { text-align: center; background: #33577b;

color: #b4c9dd; border-bottom: 1px solid #294663; #O_o a:link, #O_o a:visited { color: #b4c9dd; border-bottom: #b4c9dd; display: block; padding: 8px; text-decoration: none; #O_o a:hover, #O_o a:active { color: #fff; border-bottom: #fff; text-decoration: none; @media only screen and (max-width: 620px), only screen and (max-device-width: 620px) { #wrapper { width: 90%; legend { font-size: 24px; font-weight: 500; </style> File index.php secara keseluruhan akan nampak seperti berikut: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>dynamic Form</title> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.cs s" rel="stylesheet"> <style> #wrapper { width:595px; margin:0 auto; legend { margin-top: 20px; #attribution {

font-size:12px; color:#999; padding:20px; margin:20px 0; border-top:1px solid #ccc; #O_o { text-align: center; background: #33577b; color: #b4c9dd; border-bottom: 1px solid #294663; #O_o a:link, #O_o a:visited { color: #b4c9dd; border-bottom: #b4c9dd; display: block; padding: 8px; text-decoration: none; #O_o a:hover, #O_o a:active { color: #fff; border-bottom: #fff; text-decoration: none; @media only screen and (max-width: 620px), only screen and (max-device-width: 620px) { #wrapper { width: 90%; legend { font-size: 24px; font-weight: 500; </style> <script src="js/jquery-1.11.2.min.js"></script> <script type="text/javascript" src="js/clone-form-td.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"> </script> <!-- only added as a smoke test for js conflicts --> </head> <body> <div id="wrapper"> <form action="#" method="post" id="sign-up_area" role="form"> <div id="entry1" class="clonedinput"> <h2 id="reference" name="reference" class="heading-reference">entry #1</h2> <fieldset>

<!-- Text input--> <label class="label_fn control-label" for="first_name">nama Depan: <input id="first_name" name="first_name" type="text" placeholder="" class="input_fn form-control" required=""> <p class="help-block">this field is required.</p> <!-- Text input--> <label class="label_ln control-label" for="last_name">nama Belakang: <input id="last_name" name="last_name" type="text" placeholder="" class="input_ln form-control"> <!-- Select Basic --> <label class="label_ttl control-label" for="title">jenis Kelamin: <select class="select_ttl form-control" name="title" id="title"> <option value="" selected="selected" disabled="disabled">pilih jenis kelamin</option> <option value="lk">laki-laki</option> <option value="pr">perempuan</option> </select> <!-- end.select_ttl --> <!-- Multiple Checkboxes (inline) --> <label class="label_checkboxitem control-label" for="checkboxitem">status <div class="input-group form-group"> <label class="checkbox-inline" for="checkboxitem-0"> name="checkboxitem" id="checkboxitem-0" value="1"> Single <label class="checkbox-inline" for="checkboxitem-1"> name="checkboxitem" id="checkboxitem-1" value="2"> Menikah <label class="checkbox-inline" for="checkboxitem-2"> name="checkboxitem" id="checkboxitem-2" value="3"> Janda <label class="checkbox-inline" for="checkboxitem-3"> name="checkboxitem" id="checkboxitem-3" value="4">

Duda <!-- Prepended text--> <label class="label_twt control-label" for="twitter_handle">twitter: <div class="input-group form-group"> <span class="input-group-addon">@</span> <input id="twitter_handle" name="twitter_handle" class="input_twt form-control" placeholder="" type="text"> <!-- Text input--> <label class="label_email control-label" for="email_address">email: <input id="email_address" name="email_address" type="text" placeholder="contoh: dimas@mail.com" class="input_email form-control"> <!-- end #entry1 --> <!-- Button (Double) --> <p> <button type="button" id="btnadd" name="btnadd" class="btn btn-info">tambah form</button> <button type="button" id="btndel" name="btndel" class="btn btn-danger">hapus form diatas</button> </p> <!-- Textarea --> <label class="control-label" for="notes">alamat: <textarea id="notes" name="notes" class="form-control">tulis alamat sesuai dengan KTP</textarea> <!-- Multiple Checkboxes (inline) --> <div class="checkbox"> <label> <input type="checkbox" value="">ya, Saya menyetujui syarat dan ketentuan. <!-- Button --> <p> <button id="submit_button" name="submit_button" class="btn btn-primary">submit</button> </p> </fieldset> </form> <!-- end wrapper --> </body> </html>

Selanjutnya kita buat fungsi jquery clone nya, ada dua fungsi yang kita butuhkan, yaitu fungsi untuk menduplikasi dan fungsi untuk menghapus. Fungsi untuk menduplikasi form: $(function () { $('#btnadd').click(function () { var num = $('.clonedinput').length, // Cek berapa banyak form yang telah kita duplikasi newnum = new Number(num + 1), // Tambahkan nilai 1 untuk setiap ID duplikasi newelem = $('#entry' + num).clone().attr('id', 'entry' + newnum).fadein('slow'); // Buat elemen baru dengan fungsi clone(), dan manipulasi ID dengan nilai newnum // H2 - section newelem.find('.heading-reference').attr('id', 'ID' + newnum + '_reference').attr('name', 'ID' + newnum + '_reference').html('entry #' + newnum); // Nama depan - text newelem.find('.label_fn').attr('for', 'ID' + newnum + '_first_name'); newelem.find('.input_fn').attr('id', 'ID' + newnum + '_first_name').attr('name', 'ID' + newnum + '_first_name').val(''); // Nama belakang - text newelem.find('.label_ln').attr('for', 'ID' + newnum + '_last_name'); newelem.find('.input_ln').attr('id', 'ID' + newnum + '_last_name').attr('name', 'ID' + newnum + '_last_name').val(''); // Status- checkbox newelem.find('.label_checkboxitem').attr('for', 'ID' + newnum + '_checkboxitem'); newelem.find('.input_checkboxitem').attr('id', 'ID' + newnum + '_checkboxitem').attr('name', 'ID' + newnum + '_checkboxitem').val([]); // Email - text newelem.find('.label_email').attr('for', 'ID' + newnum + '_email_address'); newelem.find('.input_email').attr('id', 'ID' + newnum + '_email_address').attr('name', 'ID' + newnum + '_email_address').val(''); // Twitter handle - append and text newelem.find('.label_twt').attr('for', 'ID' + newnum + '_twitter_handle'); newelem.find('.input_twt').attr('id', 'ID' + newnum + '_twitter_handle').attr('name', 'ID' + newnum + '_twitter_handle').val(''); // Insert elemen baru setelah field input duplikasi yang terakhir

$('#entry' + num).after(newelem); $('#ID' + newnum + '_title').focus(); // Enable tombol remove $('#btndel').attr('disabled', false); // Sesuaikan nilai '5' sesuai kebutuhan untuk mengatur jumlah duplikasi maksimal yang diperbolehkan. if (newnum == 5) $('#btnadd').attr('disabled', true).prop('value', "Batas maksimal duplikasi"); ); Fungsi untuk mengapus section form: $('#btndel').click(function () { // Dialog konfirmasi penghapusan if (confirm("apakah anda yakin ingin menghapus form diatas? Form tidak dapat dikembalikan.")) { var num = $('.clonedinput').length; // Berapa banyak form duplikasi yang telah dibuat $('#entry' + num).slideup('slow', function () {$(this).remove(); // Jika hanya satu form, disable tombol remove if (num -1 === 1) $('#btndel').attr('disabled', true); // enable tombol "add" $('#btnadd').attr('disabled', false).prop('value', "add section");); return false; // Hapus form duplikasi terakhir ); // Enable tombol "add" $('#btnadd').attr('disabled', false); // Disable tombol "remove" $('#btndel').attr('disabled', true); Simpan kode jquery diatas dengan nama jquery-clone-td.js Sekarang kita sudah dapat menduplikasi sebuah form dengan jquery, selamat mencoba.

Tentang Penulis Dimas Agung Noviyanto