2016-04-06 6 views
1

okeyだから私はこれを得ました。ウェブサイトを持っていて、ポイントを交換することができました。私は償還をクリックすると、与えられた数は4ポイント未満です。与えられた数があなたのポイントのバランスよりも大きいことを示します。JavaScriptが正しく動作しない場合は、getElemenByIdを使用してください。

今、入力が2のとき、私はボタンをクリックしたときに、私は、できるだけ早く私はあまり私のバランスよりも数を入れたときに、私はボタンをクリックすると、2つのアラート(警告は、テストのためのものです)

を取得しますが私はまた、number =(例えば)7とbalancehidden = 100と言って、2つの警告を得る。だから私はなぜそれらの警告を得るのか分からない。なぜならそのバランスと4より大きい

も、これはrefreshBalance()が呼び出されるときのバランスが格納されますフィールドであるよりも低い:

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

Javascriptを:あなたがしている

<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をを説明しますか? im new sry – Nick

+0

あなたの 'input'と' button'タグが体外にあるのはなぜですか?それらはあなたの体の中にあるべきです。 – litel

+0

申し訳ありませんが、これは私のPHPファイルのスニペットです。 – Nick

答えて

3

ある文字列が他の文字列よりも大きいかどうかを調べることを試みるが、本当にやりたいことは数値を比較することである。 逆説的には、"4" > "100" === true4 > 100 === falseです。あなたは小数を期待する場合

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

利用parseFloat代わりのparseInt、およびradix parameterの点に注意してください。 は数字に自分の価値観を変換します。

+0

ソリューションをありがとう! – Nick

2

問題は、整数ではなく文字列の値を比較しようとしていることです。 作業コードでこのjsfiddleを確認してください:downvoteなぜ​​

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

解決に感謝します! – Nick

関連する問題