Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

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

  • edited January 12
    gimana ?

    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>
  • maaf gan maksud saya deposit=260 dan bayar=1960 tetap lolos padahal mau saya jika bayar lebih besar dari deposit maka " saldo tidak cukup"

    https://s13.postimg.org/hxe3h92s7/image.png
Sign In or Register to comment.