2016-04-06 23 views
1

okey bu yüzden anladım, bir web sitesine sahip olduğum gibi bir noktaya da sahip olabilirim, şimdi kullanıyorum tıkladığımda numaranın 4 puandan daha az olmasını istemiyorum Verilen sayı puan bakiyenizden daha büyük. giriş 2 olduğunda ben düğmesini tıkladığınızdaJavascript işlevini düzgün çalışmazsa getElemenById

Şimdi, (uyarılar test içindir) 2 uyarıları alacak

Ama en kısa sürede Bakiyemden yüksek bir sayı daha az getirirken düğmesini olarak, Ben de 2 uyarısı alıyorum, sayı = (örneğin) 7 ve balancehidden = 100. Yani neden bu uyarıları aldığımı anlamıyorum. Çünkü onun denge ve daha büyük 4.

de bu refreshBalance() denilen olsun zaman denge depolanır alandır daha az:

<input type=hidden id="balancehidden" name="balancehide" 
         value=""/> 

JavaScript: Sen

<input type="text" id="number"><br> 
     <button type="button" class="btn btn-success" id="redeem">Redeem</button> 

    <body onload="refreshBalance()"> 

      <script type="text/javascript"> 

      document.getElementById('redeem').onclick = function() { 

      if(document.getElementById('number').value < 4 || document.getElementById('number').value > document.getElementById("balancehidden").value) 
      { 


      alert(document.getElementById("number").value); 
      alert(document.getElementById("balancehidden").value); 
      } 
      } 
      </script> 
+0

Plz açıklamak? im new sry – Nick

+0

Neden 'input' ve 'button' etiketleriniz bedeninizin dışında? Bunlar senin vücudunun içinde olmalı. – litel

+0

Üzgünüz, bu benim php dosyamda bir snipet olduğunu ifade etmeyi unuttu – Nick

cevap

3

Bir dizenin başka bir dizeden daha büyük olup olmadığını görmeye çalışmak, ama gerçekten yapmak istediğiniz şey sayıları karşılaştırmaktır. Saygılarımızla, "4" > "100" === true, 4 > 100 === false. numaralarıyla değerlerini dönüştürme :

if(parseInt(document.getElementById('number').value) < 4 || parseInt(document.getElementById('number').value) > parseInt(document.getElementById("balancehidden").value)) 

Kullanım parseFloat yerine parseInt Eğer ondalık sayıları bekliyoruz ve radix parameter farkında eğer.

+0

Çözüm için teşekkürler! – Nick

2

Sorun, tamsayılar yerine dize değerleri karşılaştırmaya çalıştığınızdır. çalışma kodla bu jsfiddle kontrol edin: downvote neden https://jsfiddle.net/2kbcuhg9/

document.getElementById('redeem').onclick = function() { 
    var number = parseInt(document.getElementById('number').value); 
    var balance = parseInt(document.getElementById('balancehidden').value); 
    if(number < 4 || number > balance) { 
    alert(document.getElementById("number").value); 
    alert(document.getElementById("balancehidden").value); 
    } 
} 
+0

Çözüm için teşekkürler! – Nick

İlgili konular