Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
membatasi slug url dengan javascript
Kenapa pas diketik undefined ya?
Js
var x = document.getElementsByClassName('bam');
x[0].onkeyup = function() {
x[1].value = this.value.toLowerCase().replace(/[^a-z\d-]/gi, '-').replace(/-+/g, '-').replace(/^-|-$/g, "").maxlength;
};
HTML
<p>title: <input type="text" class="bam"></p>
<p>slug: <input type="text" class="bam" maxlength="10"></p>
3 Jawaban:
Ada kesalahan gan: Itu pada event "onkeyup", untuk value si "x[1]", terakhinya kenapa ada keyword "maxlength"? Kalo tujuan untuk mengambil maxlength si textboxnya, syntax-nya salah, yang bener "maxLength".
Ini coba ane benerin:
var x = document.getElementsByClassName('bam');
x[0].onkeyup = function() {
if (this.value.length < x[1].maxLength) {
x[1].value = this.value.toLowerCase().replace(/[^a-z\d-]/gi, '-').replace(/-+/g, '-').replace(/^-|-$/g, "");
} else return false;
};
Noted: Ane tambahin coditional untuk ngecek "maxLength"-nya.
Semoga fix ya.
Btw debug nya gimana ya mas? #barumainJS
Jawaban Terpilih
Kalo untuk error "undefined", emang biasanya dia ga throw error, jadi dari console ga keliatan. Jadi, untuk error kaya gini emang harus di cek satu-satu per baris.
Kalo saya biasanya buat unit-test dulu (paling enak pake metode BDD), jadi apapun inputan-nya dan apapun output-nya, bisa ke handle walaupun hasilnya undefined.
Kalo mau coba, boleh cari-cari tutor sama best practicenya untuk unit-testing. Saran saya langsung start pake metode BDD, karena kalo TDD terlalu luas scope-nya >,< Untuk unit-test sendiri, buat javascript pake Jasmine JS atau Mocha JS + Chai JS.
Semoga membantu ya... CMIIW