Postingan lainnya
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
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