Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Membuat Validasi Javascript Minimum
Kok masih lolos ya master saya coba tes deposit 1 dan bayar 2 berhasil.
Tapi ketika saya buat deposit 260 bayar 190 kok lolos ya... Mohon bantuannya master....
<!DOCTYPE html> <html> <head> <script> function validasi2(form2) { var x = document.forms["form2"]["deposit"].value; var xz = document.forms["form2"]["bayar"].value; if (x<xz ) { alert("Deposit Tidak Cukup"); return false; } } </script> </head> <body> <form name="form2" action="" onsubmit="return validasi2(form2)" method="post"> Deposit: <input type="text" name="deposit"> </br> bayar: <input type="text" name="bayar"> <input type="submit" value="Submit"> </form> </body></span> |

Comments
lha kan emang bener ...
-------------------------------------------------
deposit : 1
bayar : 2
var x = document.forms["form2"]["deposit"].value; // 1
var xz = document.forms["form2"]["bayar"].value; // 2
if (x<xz ) { // 1 < 2 ~~ TRUE ... benar, 1 LEBIH KECIL dari 2
alert("Deposit Tidak Cukup");
return false;
}
... muncul alert ...
-------------------------------------------------
-------------------------------------------------
deposit : 260
bayar : 190
var x = document.forms["form2"]["deposit"].value; // 260
var xz = document.forms["form2"]["bayar"].value; // 190
if (x<xz ) { // 260 < 190 ~~ FALSE ... 260 kan LEBIH BESAR dari 190
alert("Deposit Tidak Cukup");
return false;
}
... TIDAK MUNCUL alert ...
-------------------------------------------------
salah dimananya yah ?
bermasalah itu jika ... misal ... :
deposit : 260
bayar : 35
x = 260
xz = 35
x < xz
260 < 35 ... harus nya FALSE, tidak muncul alert ... tapi kejadiannya justru alert muncul
isi <input type="text"> itu string, bukan numerik.
kalo pun diisi angka, itu tetep string.
jadi kalo diambil pake .value, sebenernya bukan 260, tapi "260"
x = "260"
xz = "35"
x < xz
"260" < "35" ... TRUE ... kalo string, perbandingannya per karakter dari depan.
"2" < "3" ... benar ... alert akan muncul
2 < 3 ... TRUE
"2" < "3" ... TRUE
20 < 3 ... FALSE
"20" < "3" ... TRUE
<script>
if(2<3) {alert('BENAR : 2 < 3');} else {alert('SALAH : 2 < 3, TAPI : 2 > 3');}
if("2"<"3") {alert('BENAR : "2" < "3"');} else {alert('SALAH : "2" < "3", TAPI : "2" > "3"');}
if(20<3) {alert('BENAR : 20 < 3');} else {alert('SALAH : 20 < 3, TAPI : 20 > 3');}
if("20"<"3") {alert('BENAR : "20" < "3"');} else {alert('SALAH : "20" < "3", TAPI : "20" > "3"');}
</script>
hasil alert yg muncul pasti :
BENAR : 2 < 3
BENAR : "2" < "3"
SALAH : 20 < 3, TAPI : 20 > 3
BENAR : "20" < "3"
kalo mau hasilnya bener, numerik diperlakukan sebagai numerik ...
pakai :
- parseInt
- parseFloat
- (int)
- (float)
- -0 ... "20"-0 = 20 ... tapi tidak bisa +0, karena "20"+0 = "200", bukan 20
- *1 atau /1
terserah, mana pun tergantung butuh dan yg nyaman dipake ...
float atau int tergantung tipe numerik yg dipake
int : kalo butuh bilangan bulat
parseInt("20.5") = 20
(int)"20.5" = 20
parseInt("3") = 3
(int)"3" = 3
float : kalo butuh bilangan desimal, hasil tetap benar kalo dipake utk bilangan bulat
parseFloat("20.5") = 20.5
(float)"20.5" = 20.5
parseFloat("3") = 3
(float)"3" = 3
-0 , *1 , /1 ... otomatis menyesuaikan sendiri
"20.5"-0 = 20.5
"20"-0 = 20
<script>
var a = "20";
var b = "3";
//pilih salah satu
//a = parseInt(a);
//a = parseFloat(a);
//a = (int)a;
//a = (float)a;
//a = a-0;
//a = a*1;
//a = a/1;
//pilih salah satu
//b = parseInt(b);
//b = parseFloat(b);
//b = (int)b;
//b = (float)b;
//b = b-0;
//b = b*1;
//b = b/1;
if(a<b) {alert(a+" < "+b);}
else if(a>b) {alert(a+" > "+b);}
else {alert(a+" = "+b);}
</script>
https://s13.postimg.org/hxe3h92s7/image.png