Pada kesempatan kali ini kita akan membahas bagaimana cara mem format rupiah dengan javascript.
Untuk memformat output data database ke dalam bentuk rupiah, kita gunakan program serverside, seperti PHP. Hal ini tidak efektif jika menggunakan program client side seperti javascript, karena harus menunggu semua dokumen di load.
Lalu, untuk tujuan apa membuat format rupiah dengan javascript?
Umumnya, format rupiah dengan javascript ini digunakan untuk mengelola inputan dari user pada form baik secara langsung maupun tidak langsung. Tidak langsung dalam hal ini misal membuat total dari semua inputan secara realtime.
I. Membuat Format Rupiah Dengan Javascript – Cara Mudah
Diinternet terdapat banyak script untuk membuat format rupiah dengan javascript. Kali ini saya menggunakan cara berbeda yaitu menggunakan regex, yang lebih simpel dan mudah dipelajari.
Adapun script jadinya adalah sebagai berikut:
var bilangan = 23456789;
var number_string = bilangan.toString(),
sisa = number_string.length % 3,
rupiah = number_string.substr(0, sisa),
ribuan = number_string.substr(sisa).match(/\d{3}/g);
if (ribuan) {
separator = sisa ? '.' : '';
rupiah += separator + ribuan.join('.');
}
// Cetak hasil
document.write(rupiah); // Hasil: 23.456.789
Script diatas akan menghasilkan angka 23.456.789.
Penjelasan:
- Pertama, karena kita akan memecah angka menggunakan fungsi untuk string, maka kita ubah format angka menjadi string dengan fungsi toString
bilangan.toString()
- Selanjutnya kita cek apakah jumlah digit bukan kelipatan 3 (
number_string.length % 3
), hasilnya kita simpan pada variabel rupiah.Nilai variabel rupiah ini ada nilainya jika banyaknya angka tidak kelipatan 3, dan akan bernilai kosong jika banyaknya angka kelipatan 3. Pada contoh kali ini, nilai awal rupiah adalah 23.
- Selanjutnya, dengan regex yang simpel, kita kelompokkan sisanya per tiga digit, sisa ini berbentuk array dan disimpan ke dalam variabel
ribuan
. Dalam contoh ini, variabel ribuan akan berisi["444"]["555"]
- Jika variabel ribuan ada nilainya: Jika jumlah digit tidak kelipatan 3 (variabel
sisa
ada isinya) maka separator bernilai titik (.
), jika tidak, maka separator bernilai kosong.Hal ini untuk menghindari titik didepan angka jika jumlah angkan kelipatan 3, seperti:
.125.000
- Terakhir, dengan operator += kita gabung nilai varibel rupiah.
Untuk lebih jelasnya, perhatikan gambar berikut:
DEMO: untuk demonya, silakan klik disini.
Cara lebih singkat
Sebenarnya ada cara lebih singkat lagi, yaitu:
var bilangan = 23456789;
var reverse = bilangan.toString().split('').reverse().join(''),
ribuan = reverse.match(/\d{1,3}/g);
ribuan = ribuan.join('.').split('').reverse().join('');
// Cetak hasil
document.write(ribuan); // Hasil: 23.456.789
Penjelasan:
- Pertama, kita ubah bilangan menjadi string (
bilangan.toString()
), kemudian kita balik urutan angka tersebut (split('').reverse().join('')
), hasilnya98765432
kita simpan pada variabelreverse
- Selanjutnya, dengan regex, kita pecah angka tersebut per tiga bagian menjadi array:
["987","654","32"]
.Regex
\d{1,3}
: artinya kita ambil angka (\d
dapat diganti[0-9]
) dengan panjang digit 1-3, diambil yang terbanyak dahulu yaitu 3, artinya jika bisa menemukan tiga karakter, maka diambil 3 karakter, jika tidak 2, jika tidak 1. - Kemudian kita gabung array tersebut dengan titik (
ribuan.join('.')
), hasil:987.654.32
, dan kita balik hasilnya (split('').reverse().join('')
), hasilnya:23.456.789
Untuk lebih jelasnya, perhatikan gambar berikut:
DEMO: Untuk demo penggunaan script ini, dapat dilihat disini.
II. Mendukung Koma (Desimal)
Pada rupiah, kita mengenal istilah desimal atau sen, meski jarang digunakan, pada sistem yang detail, penggunaan koma ini masih sering digunakan.
Untuk itu, mari kita sedikit ubah script kita, sehingga dapat mendukung koma/sen
var bilangan = "23456789,32";
var number_string = bilangan.toString(),
split = number_string.split(','),
sisa = split[0].length % 3,
rupiah = split[0].substr(0, sisa),
ribuan = split[0].substr(sisa).match(/\d{1,3}/gi);
if (ribuan) {
separator = sisa ? '.' : '';
rupiah += separator + ribuan.join('.');
}
rupiah = split[1] != undefined ? rupiah + ',' + split[1] : rupiah;
// Cetak hasil
document.write(rupiah); // Hasil 23.456.789,32
Script diatas tetap kompatibel baik untuk bilangan bulat maupun bilangan yang memiliki pecahan/sen. Adapun perbedaan dari script sebelumnya hanya di baris 4 dan 13.
Penjelasan:
- Pada baris 4, dengan method split, kita pecah bilangan menjadi dua berdasarkan tanda koma, yaitu bilangan utuh (sebelum koma) dan bilangan pecahan (sesudah koma), hasilnya kita simpan pada variabel split.
- Selanjutnya, untuk bilangan bulat, kita gunakan split[0], sedangkan untuk pecahan, kita gunakan split[1]
- Pada baris ke 13, kita tes, apakah bilangan mengandung pecahan (
split[1] != undefined
) jika, ya, maka kita gabungkan pecahan dengan bilangan jadi.
III. Menerapkan Format Rupiah Pada Form
Format rupiah dengan javascript paling sering digunakan pada inputan form yang terkait dengan nilai nominal misal harga, jumlah diskon, total harga, dan lain-lain.
Nah, script untuk menerapkan format rupiah pada form input ini, sama seperti script yang telah kita bahas sebelumnya, bedanya, kita menggunakan event keyup
dan keydown
keyup
artinya event yang terjadi ketika tombol keyboard kita lepas (setelah kita tekan) sedangkan keydown
artinya event yang terjadi ketika kita menekan tombol pada keyboard.
1. Event Keyup
Untuk menangkap event keyup, kita menggunakan method addEventListener
. Method ini sudah didukung oleh semua browser modern, namun khusus untuk IE, baru mendukungnya versi 9 ketas.
Adapun script yang kita gunakan:
var input = document.getElementById('input-rupiah');
input.addEventListener('keyup', function(e)
{
var number_string = bilangan.replace(/[^,\d]/g, '').toString(),
split = number_string.split(','),
sisa = split[0].length % 3,
rupiah = split[0].substr(0, sisa),
ribuan = split[0].substr(sisa).match(/\d{1,3}/gi);
if (ribuan) {
separator = sisa ? '.' : '';
rupiah += separator + ribuan.join('.');
}
rupiah = split[1] != undefined ? rupiah + ',' + split[1] : rupiah;
return prefix == undefined ? rupiah : (rupiah ? 'Rp. ' + rupiah : '');
});
Script diatas sama persis dengan script sebelumnya, hanya saja, ada beberapa yang kita tambahkan:
- Pada fungsi diatas kita menambahkan kode
bilangan.replace(/[^,\d]/g, '')
yang digunakan untuk menghilangkan semua karakter selain koma dan bilangan ([^,\d]
). Sehingga, ketika user menekan huruf selain koma dan digit, maka akan langsung hilang. - Kedua, kita menambahkan kode
prefix == undefined ? rupiah : (rupiah ? 'Rp. ' + rupiah : '');
untuk menambahkan prefix (dalam contoh ini Rp.) jika user menghendaki adanya prefix.
DEMO: Untuk demonya, silakan klik disini.
2. Penambahan Event Keydown
Ketika menggunakan event keyup, maka ketika user menekan huruf a
pada keyboard, maka teks a tersebut akan muncul, namun ketika user melepas tombol a tad, maka seketika huruf a tersebut akan hilang.
Nah, event keydown ini dapat membatasi sehingga tombol a benar-benar tidak berfungsi alias ketika user menekan tombol a, maka tidak terjadi apa-apa.
Keterbatasan dari metode ini adalah kita harus menentukan huruf mana saja yang akan kita disable, untuk itu kita harus mengetahui keycode dari masing masing huruf. Keycode tersebut dapat dilihat disini.
Fungsi yang kita gunakan adalah:
var input = document.getElementById('input-rupiah');
input.addEventListener('keydown', function(event) {
{
key = event.which || event.keyCode;
if ( key != 188 // Comma
&& key != 8 // Backspace
&& key != 17 && key != 86 & key != 67 // Ctrl c, ctrl v
&& (key < 48 || key > 57) // Non digit
// Dan masih banyak lagi seperti tombol del, panah kiri dan kanan, tombol tab, dll
)
{
event.preventDefault();
return;
}
});
DEMO: Untuk demonya, silakan klik disini.
keyup
) yang paling umum digunakan untuk membatasi inputan karakter pada form, karena masih ada reaksi ketika user menekan tombol keyboard.
Dengan demikian user tahu bahwa ada pembatasan inputan karakter. Jika menggunakan metode keydown
, karena tidak ada reaksi ketika keyboard ditekan, mungkin user akan menduga apakah keyboardnya yang bermasalah?
IV. Kesimpulan
Membuat format rupiah dengan javascript dapat dilakukan dengan banyak cara, beberapa diantaranya telah kita bahas diatas.
Mana yang seharusnya kita gunakan?
Berdasarkan pembahasan kita diatas, yang paling umum digunakan adalah menggunakan event keyup (bagian III.1) untuk lebih meningkatkan fungsionalitas, kita dapat menambahkan event keydown (bagian III.2)
Demikian pembahasan mengenai cara format rupiah dengan javascript, semoga bermanfaat.
Subscibe Now
Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com
119 Feedback dari pembaca
TERIMA KASIH BANYAK GAN
Sama sama mas
fungsi untuk menghilangkan format uang ada gan?
Pakai PHP atau Javascript mas? keduanya bisa pakai regex mas
Contoh untuk PHP:
Untuk javascript:
Makasih banyak mas, semoga ilmunya menjadi berkah buat mas agus
Sama sama mbak…
Kalau pake Framework CI gmana syntaxnya pak ?
Sama saja mas, tinggal load javascript untuk format ribuannya
Mas, gimana ya kalau mengolah inputan dengan format currency. Contohperkalian, inputannya textbox1 (10.000) x textbox2(2.000).
Pas ngolah dengan javascriptnya ngga bisa karena ata “.”, cara replace “.” gimana? Mohon bimbingannya…
Coba ini mas:
untuk penerapannya pada form:
nilai1 = textbox1.value;
nilai2 = textbox2.value;
Asslamu’alaikum, Mas maaf mau nanyak yg script untuk mengolah penjumlahan atau perkalian itu dtaruh bagian mana yaa? kok saya coba berkali-kali tdk bisa, maaf masih belajar tahap awal, terimakasih Mas..
Waalaykumsalam mas
Maaf, maksudnya mengolah penjumlahan dan perkalian itu seperti apa ya mas?
maksud saya, stelah angka yg saya inputkan diubah menjadi format rupiah, kok tidak bisa dijumlahkan secara otomatis lagi… trmkasih banyak Mas atas jawabannya..
Tidak bisa dijumlahkan secara otomatis lagi maksudnya bagaimana ya mas? itu beda kasusnya sama yang di artikel?
mas kalau hasil nya keluar texbox format uang juga gmn caranya
misalnya
nilai1=90,000
nilai2 = 10,000
hasil perkalian 900,000
format uang juga
sudah sya coba cara diatas hasilnya 900000
Textboxnya diubah juga valuenya mas, kalau di jquery pakainya $(input).val(format_rupiah(90000 * 10000));
gan mau tanya, maksud dari ini apa yah
(‘/\D/’)
(‘/\D/g/’)
di jelaskon tolong secara detail yah
Tanda / sampai dengan / menandakan didalamya merupakan RegEx mas
Karakter khusus d untuk mencari data digit, sedangkan D untuk non digit
Untuk menggunakan karakter khusus, gunakan escape ( \ ), jika tidak, maka akan dibaca karakter biasa, misal:
Karakter khusus g artinya global, RegEx akan mencocokkan semua karakter degan RegEx, jika tanpa g, maka ketika ketemu karakter pertama regex berhenti,
wahh keren mas, thankyou buat sedikit pelajaran yang berharga
Sama sama mas…
makasih banyak masss… mantapp
Mas, mau nanya:
Bagaimana caranya agar tanda koma (,) dapat dikonversi ke titik dan ditangkap oleh variable php?
Alur dalam contoh diatas:
1. Input angka pada JavaScript ( misalnya : 1.000.000,55).
2. Hapus format uang Dgn code php $clean, kemudian konversi tanda koma menjadi tanda titik.
Sehingga yg ditangkap oleh php dan hasil dr $clean bisa menjadi 1000000.55.
3. Nilai ini yg akan di echo/di insert ke data base.
Makasi atas tanggapannya, Mas
Di script PHP nya, fieldnya ditangkap mas, terus direplace komanya, misal:
selanjutnya nilai tersebut tinggal dimasukkan ke database:
Wah, Makasi banyak tanggapan dan solusinya, Mas.
Sudah bisa input ke database sekarang.
Maklum saya pemula soalnya.
Sukses selalu, Mas
Sama sama mas…
Mas kalau merubah format hasil total penjumlahan kolom dari footercallback yang ada di data tabel bootsrap itu gimana ya mas?
Ini mas linknya https://datatables.net/examples/advanced_init/footer_callback.html
Maaf belum pernah mencoba yang itu mas, untuk datatables kita harus banyak menggunakan javascript karena dia base nya javascript
tapi gimana mas kalo di inputkan ke database biar bisa soalnya saya inputkan ke database yang masuk ke database 3 digit sebelum titik sesudah titiknya gak kebaca??
Itu tipe data kolom di databasenya mas, di belakang titik akan dibaca desimal, jika tipe data kolom tersebut integer, seperti INT, maka desimalnya akan hilang
Jika maksudnya dibelakang titik adalah ribuan, maka hilangkan titinya terlebih dahulu sebelum dimasukkan kedalam database, contoh scriptnya ada di jawaban saya sebelumnya
Hanya koreksi sedikit mas… Pada bagian II itu seharusnya returning data dari variabel rupiah, bukan variabel ribuan.
document.write(rupiah);
Oiya mas terima kasih banyak atas koreksinya, artikelnya sudh saya koreksi…
Halo mas,
Mohon bantuannya untuk replacement string berupa angka menjadi teks dengan javascript/jquery.
Ini contoh elemen htmlnya: https://paste.ubuntu.com/26340512/
Angka 1, 2, 3, 4, dst (sampai 28) itu adalah hasil generate script pagination.
Bagaimana mengubah angka tersebut menjadi teks:
Khusus untuk “1” menjadi “#”
Kemudian “2” menjadi “A”, “3” menjadi “B”, “4” menjadi “C” dst…
Saya sudah coba dengan
Memang sih berhasil, hanya saja kendalanya ketika sudah sampai di “10” hasil replacementnya adalah “#”. Karena mungkin contains() tidak mebedakan secara exact match antara string “1” dengan string lain yang juga mengandung “1” (misal 10, 11, 12 …)
Jika dengan aacuan windows, searching DOM nya terlalu banyak mas, dibatasi di parentnya pagination saja yaitu di <UL> nya, selanjutnya dari <UL> search element <a> nya….
Nah setelah di loop <a> nya, ambil teks dengan text(), kemudian replace dengan text() lagi…
Iya terima kasih mas atas sarannya, sudah saya ganti dengan metode pagination lainnya. Karena untuk jquery bootstrap pagination (twbsPagination.js) sepertinya hanya bisa mendukung angka saja.
Iya mas… sip…
terima kasih mas atas infonya, bagaimana jika inputan nilai nya itu minus.
Jika minus sama saja mas… bisa dicoba menggunakan cara singkat di bagian #Cara lebih singkat
Pak kalau untuk mengubah nilai dari tabel agar berbentuk rupiah bagaimana ya?
Maksudnya tabel database mas?
Terima kasih banget tutorialnya, Mas Agus
Sama sama mas…
assalamualaikum bos ku terima kasih atas tutornya.
saya mau konsul ni bosku,
disini saya coba menggunakan format rupiah misal : Rp. 1.000.000 tapi saya mau simpan ke database dengan number yang di inputkan saja. gimana ya caranya hapus tanda Rp dan titik untuk simpan ke database ya bosku. mohon bantuannya ya makasih…….
Bisa di hilangkan di sisi server mas, misal di php nya menggunakan str_replace.
Misal:
$string = str_replace(array(‘Rp’, ‘.’ ), ”, $_POST[‘angka’]);
Mas klo untuk membatasi angka dibelakang koma, gmna jadi scriptnya?mksh
Maksudnya di javascript nya mas? jika ya, tinggal di tambahkan di event key up, di split komanya, hilangkan koma yang melebihi batas, kemudian hasilnya di masukkan kembali ke input field
Terimakasih Mas, Work 100%.
Sama sama mas…
Om, kalau dari tabel yang sdh terdapat rumus sebelumnya, kemudian angkanya ingin menggunakan pemisah ribuan bisa nggak..?
Maksudnya datanya sudah diformat mas? kalau iya, dihilangkan dulu formatnya, misal dihilangkan dulu karakter non digitnya dengan misal:
preg_replace(‘\/D\’, $data);
permisi mas kalo misalnya :
# user input di form “10.000”, “1.000.000”,”, “1.000.000.000” bisa tidak di ubah menjadi “10 ribu”, “100 ribu”, “1 Juta”, “1 milyar”
mohon pencerahan nya mas, terima kasih semoga sukses selalu
Bisa mas, cuman harus diparsing lagi angkanya, coba di cari di google mas dengan keyword fungsi terbilang dengan javascript
1. Input bilangan ngacak
2. Di konversi jadi kayak gini :
Ratusan Ribu ada ….
Puluhan ribu ada ….
Kayak gitu sampe satuan
kalo untuk pecahan uang menggunakan javascript gimana gan
Bilangan bisa di split per 3 digit untuk mendapatkan ribuan, puluhan ribu, dan ratusan ribu selanjutnya tinggal dihitung berapa jumlah ratusan ribu, puluhan ribu, dst…
Terima kasih sangat membantu postingannya
saya juga struggle dengan masalah ini apalagi dibagian detect key code nya utk event listener keydown. akhirnya saya hard coding semua keycode yg gak bisa ditulis :D, mungkin berguna juga untuk kawan2, jdi saya bagikan disini jga ya. kalau dirasa caranya ampuh boleh jga dimasukkan kedalam postingannya supaya jadi referensi kedepan
oia, btw, saya pakai jquery, jika mau diubah ke vanilla JavaScript silahkan!
Wah terima kasih atas sharingnya mas, semoga bermanfaat bagi pembaca lainnya…
Bagaimana kalau mau format inputan nya otomatis titik diganti dengan koma, lalu saat user input titik sebagai ganti koma dibatasi 2 digit saja mas ?
Terima kasih atas bantuannya
Untuk otomatis mengganti titik ke koma bisa dicoba mengganti value inputnya mas, misal: bilangan.replace(/\./g, ‘,’);
Assalamualaikum, pak saya mau tanya kalau di input data Qty * harga Barang
input 40*40.000 = 1.600.000
tetapi di input total hanya tampil 1600 tanpa ada titik dan titik dibelakang juga .000 itu seperti apa ya pak?
Waalaykumsalam Wr. Wb.
Bisa menggunakan fungsi str_replace pada PHP kemudian hilangkan 3 digit terakhirnya, misal:
mas, itu khan hasil akhirnya Rp. 123.456 ; bagaimana kalau kita ingin hasil akhirnya Rp. 123.456,00 ?
maklum mas pemula, saya sudah coba tambahin di return prefix, tapi hasil akhirnya yg benar, kalau ada koreksi, bisa jadi kacau
Itu coba di hasil akhirnya ditambahkan + ‘,00’ mas
mas untuk memasukan hasilnya kedatabase klo versi php kan pakai str_replace , klo codeigniter gimana mas?
Sama saja mas, codeigniter juga php
cara menambhakan dua nol dibelakang “.” gimana ya mas?
misal : 1.000.000 jadi 1.000.000,00
Kalau cuman ,00 tinggal di tambahkan di hasil akhirnya mas
terimakasih pak sangat membantu sekali. mau tanya, misal kolom input an nya lebih dari satu gimana ya pak? saya udah coba tapi ternyata hanya kolom input pertama yang bisa. sementara kolom input dibawahnya tidak bisa. mohon bantuannya pak. berikut script saya :
https://pastebin.com/bJ4aEJPN
Mungkin nama field inputnya () nya sama mas
assalamualaikum,,,,,sangat membantu mas,,cuma saya masih bingung otak atik belum ketemu ,mau tanya kalau ditabel saya cuma ada 1 input saja yang diketik,, ,misal input di box1 ,, box2=box1 * 0.8 ,,box3=box1*box2*3,14 ,,, box4=box3*75000 nah pada box4 saya pinginya munculnya langsung dalam bentuk rupiah misal Rp. 2.800.000,00 itu caranya gimana mas,,,, disini contohnya mas,,, http://www.kubahmoderen.com/ dan sampai comen ini saya tulis masih belum berhasil saya
Itu menggunakan javascript mas menggunakan event onkeyup jadi ketika box 3 di ketik, hasilnya langsung muncul di box 4
oh iya maaf ,,,lupa,,,,itu tabel yang saya buat di web site saya kok tidak suport di HP ya mas,,,,solusinya gimana,,,terimakasih
Coba dicari artikel tentang tabel responsive di web ini mas
hahha,,,sudah bisa mas,,,walau grayah grayah,,,,makasih tutorialnya,,,sudah 3 hari ndak tidur ini
😀 sama sama mas, usaha tidak pernah membohongi hasil…
bagaimana jika valuenya itu nominal biasa dirumh menjadi desimal gan?
contoh dari angka 1505235 jadi 15.052,35???
Bisa dicoba dengan melakukan pembagian mas, dibagi 100
bagaimana kalau ingin gunakan negative number mas? seperti -50.000
Di hilangkan dulu negatifnya, kemudian diformat angkanya, kemudian ditambahkan kembali negatifnya mas…
Assalamualaikum. Maaf pak, saya ada masalah untuk membuat format negative jika bayar < total.. mohon bantuannya… terimakasih sebelumnya…
Ini SC nya https://pastebin.com/TA07CtyA
Coba dibaca comment sebelumnya mas, sepertinya sudah dijawab
Mohon bantuannya pak, bagaimana script menjumlahkan dengan javascript dengan format bilangan seperti contoh berikut ini: 5.700,25 + 5.300,85 = 11.001,10. Saya sudah mencoba tapi hasilnya tidak sesuai yang diharapkan, kesulitan regex untuk mereplace koma lalu nanti hasilnya nanti setelah dijumlahkn kembali ke format ribuan dengan tanda desimal koma. Terima kasih
Coba ribuannya diganti menggunakan koma mas, selanjutnya desimalnya menggunakan titik
Mas, cara membuat javascript untuk login gimaa ya mas?
bisa dijelasin codingnya ya gimana mas?
Maksudnya untuk login gimana ya mas?
maaf gan, #oot, saya baru mempelajari php, saya bingung, apa ada cara untuk “menghilangkan” angka di belakang koma, tanpa mempengaruhi angka di depan koma, misal :
43,9 jadi 43
1,5 jadi 1
12,9 jadi 12
7,5 jadi 7
0,4 jadi 0
0,6 jadi 0
tanpa mempengaruhi angka di depan’nya gan, apa ada rumus’nya???
Bisa menggunakan fungsi round() mas, misal round(43.9)
mas kalo nilai inputnya ada koma contoh 5.400.000,90 pas di simpan kalo menggunakan preg_replace(‘/\D/’,”,$_POST[‘Pagu_Anggaran’]); menjadi 540.000.090 mohon pencerahan
Maksudnya mau diubah menjadi apa mas?
pas di simpan ke database bang nilai input datanya. contoh 5.400.000,90 menjadi 540.000.090 kalo menggunakan preg_replace(‘/\D/’,â€Â,$_POST[‘Pagu_Anggaran’]); .
tidak bisa menterjemahkan 2 digit di belakang koma
Pakai explode mas, untuk memecah komanya, kemuadian hilangkat titik dengan preg_replace atau str_replace
kalo var nya ndak dituils, misalnya :
var angka = 12232 ; angkanya itu diambil dari angka yan tertulis di itu gimana ya mas ?
Maksudnya bagaimana ya mas?
kalo mau manggil fungsi tersebut dalam beberapa form gimana mas, misal di form manggil id=”rupiah”. untuk form selanjutnya kan ga bisa d pakek mas, mohon solusinya. apa harus buat file.js sendiri ato ada cara lain yg llebih singkat?
Memang kalau menggunakan ID hanya bisa satu saja mas, sebagai solusinya bisa menggunakan class, jquerynya:
Terima kasih mas
Sama sama mas…
Mas saya mau nanya dong, kan kalau bikin Cetak laporan gitu kan saya d bawahnya ada kolom untuk menjumlahkan semua data bayar yg ada d table dan d total d table jumlah d bawahnya ya, nah untuk yg RIBUAN RUPIAH di data bayar yg d table saya bisa menggunakan, untuk yg total kan itu jumlahnya menggukaan variable untuk memanggil name dari data bayar ya, nah, untuk yg variable itu jika ingin dijadikan ribuan rupiah gmn ya ? kan klo bukan variable scriptnya seperti ini “.rupiah($d[‘jumlah’]).”, dan yg total $total += $d[‘jumlah’];, itu yg total bagaimana ya jika ingin d jadikan ribuan rupiah jika menggunakan $total ?? terima kasih
Apa maksudnya seperti ini mas rupiah($total)
makasih ilmunya mas…
kalau dibagian var input = document.getElementById(‘input-rupiah’);
dia ada banyak textbox benerga kalau begini
var input = document.getElementById(‘input-rupiah’,’input-rupiah2′,’input-rupiah3′);
makasih mas
Bener mas, kalau ID pakainya tanda kres, input = document.getElementById(‘#input-rupiah’,’#input-rupiah2′,’#input-rupiah3′);
ID sebaiknya hanya untuk satu element, jika target element lebih dari satu sebaiknya pakai selector Class
saya ikut kode di atas gak jalan jg kalo lebih dari 1 kenapa ya pak?
var rupiah = document.getElementById(‘rupiah’,’rupiah12′);
Harus dibuat sendiri sendiri mas karena getElementById hanya untuk satu element saja
Mas agus gimana ya kalo kita mau satuannya itu ada di belakang inputan text kita contoh:
saya mau masukan angka 1.500
maka otomatis dibelakang angka 1.500 muncul satuan “m²” gitu namun (akan tetapi) kursor keyboard kita berada di belakang angka 0 tersebut, (bukan dibelakang satuan m² nya)
mohon banget pencerahan
Paling mudah menggunakan CSS mas: https://getbootstrap.com/docs/4.5/components/input-group/
Atau kalau ngga bisa pakai javascript tapi ribet
Mas,,, saya mempunya kurang lebih ada 53 input rupiah, apakah harus membutat id sebanyak 53 ?
contoh:
SPP1
SPP2
klo format rupiahnya ambil dari class=”rupiah” bagaimna caranya?
saya coba pakai queryselectorall, diconsol.lognya jadi, tapi tidak jalan diform inputnya.
NodeList.prototype.forEach = Array.prototype.forEach;
NodeList.prototype.forEach = Array.prototype.forEach;
document.querySelectorAll(“.rupiah”).forEach(function(e) {
var inputRp = e.value.toString().replace(/[^,\d]/g, ”);
var number_string = inputRp;
var split = number_string.split(‘,’);
var sisa = split[0].length % 3;
var rupiah = split[0].substr(0, sisa);
var ribuan = split[0].substr(sisa).match(/\d{3}/gi);
if(ribuan){
separator = sisa ? ‘.’ : ”;
rupiah += separator + ribuan.join(‘.’);
}
rupiah = split[1] != undefined ? rupiah + ‘,’ + split[1] : rupiah;
console.log(rupiah);
return rupiah == undefined ? rupiah : (rupiah ? rupiah : ”);
});
Mohon solusinya
Coba di console log e nya mas, yang di function(e), kemudian dicari cara untuk menampilkan value nya
Terima kasih banyak mas
Sama sama mas…
mas mau tnya saya kn buat form nah ada 3 list paket, saya buat form di contact form 7 wordpress, value checkboxnya sama masukkin 10000000, biar outputnya jadi 10.000.000 gimna mas, krna sya pkai plugin calculatr cf7 inputnya tnpa titik yg bisa di kali, jadi gini 1000000(harga) * 2(jumlah peserta) = 20000000(totaldibayar) ini hasilnya, nah saya niat mau custom biar bisa ada titik gini 10.000.000 * 2 = 20.000.000, saya udah jajal parse ggal
Maaf, saya tidak paham plugin contact form 7 mas
Permisi mas., saya mau nanya,
seandaikan user minta si angka yang misalkan:
1000.000.000
00
Menjadi ;
1000.000.000
00
mohon di bantu mas ., penempatan si angka nol menjadi di taruh di belakang seperti itu… thanks…
Maaf, kurang paham dengan pertanyaannya mas, itu angkanya sepertinya ngga ada bedanya
Makasih mas.. saya punya problem input angka harus ada titiknya dan akhirnya ketemu juga solusinya dari sini
Siap, sama sama mas…
Mantap mas, sukses trus nya dan sehat selalu sekeluarga
Jika ada teman2 yang menggunakan Laravel untuk input ke database yang berupa INT, bisa gunakan Str::replaceArray
Siap, terima kasih informasinya mas 🙂
mas, aku pakai syntax seperti ini :
dan ini ketika saya input misal 150000 maka menjadi 150.000 sesuai yang diharapkan di textbonya, namu ketika saya save kedatabase nilai itu menjadi 150 saja, padahal sudah saya replace dijavascriptnya mengikuti syntax replace, mohon pencerahannya mas, saya panggil replacenya di tombol button namun tidak berfungsi…
Coba dipastikan pas di sumbit ke database titiknya hilang mas, misal pakai fungsi str_replace() di PHP
assalammualaikum mas mau tanya
contoh
var=10,000
var=20,000
dijumlahkan hasilnya menjadih format uang lagi
saya sudah coba hasil penjumlahan hasilnnya tidak format uang
terimaksih
Pemisah ribuannya harus dihilangkan dulu mas, kebetulan yang dicontoh menggunakan pemisah ribuannya titik, sedangkan di masnya menggunakan koma. Script diatas bisa disesuaikan mas menggunakan koma