2016-07-08 5 views
1

私はビットコムのウェブサイトで作業しており、すべてのユーザーの口座残高は1.26584000または0.00032568です。 10進数の後には常に8桁の数字があることに注意してください。テキストボックス内の数字のみが口座残高以下

ここでは、ビットコインの量をテキストボックスに入力したいが、このテキストボックスには数字のみが含まれていてもよく、アカウント残高より大きい場合は自動的に最大残高に置き換えられるはずです。

口座残高は、このような文字列としてPHPの変数($バランス)に格納されます。

$balance = number_format((float)$activeUser['balance'], 8, '.', ''); 

私が持っている現在のテキストボックスは、次のようになります。

<input class="form-control col-md-10 input-lg" type="text" value="0.00000000" /> 

私はすでにいくつかを見つけましたJavascriptを使用したソリューションですが、私はその結果を得ることができませんでした。

+0

あなたの期待する結果とあなたの問題は何ですか? Javaスクリプトコードを使用していますか? –

+0

私はちょうど0とユーザーの間の(10進数)番号を受信したいと思います。私はこの番号をデータベースに保存したいが、それは重要ではない。間違った入力で間違いを犯すことはできない。 –

+0

min = ""とmax = ""の問題は、小数点では機能しないということです。私がJavaScriptで試してみたところ、小数点にも同じ問題がありました。残念ながらこのコードはもうありません。 –

答えて

3

単に2つの値を比較し、それが最小だ見つける:でもキーを押してオン/ぼかしの

$(document).ready(function() { 
 
    var accountMax = (Math.random() * 10).toPrecision(8); 
 
    console.log('Account balance: '+accountMax); 
 
    
 
    $('#value-input').change(function() { 
 
    var inputed = parseFloat($(this).val()).toPrecision(8); 
 
    
 
    $(this).val(Math.max(0, Math.min(inputed, accountMax)).toPrecision(8)); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
BitCoinHacker3000: <input type="text" value="0.00000000" id="value-input"/>

+0

が正しいと思っていることを確認してください。+ 10 –

+0

これはいいですが、これは人の財政を扱っているので、OPはサーバー側の検証もPHPで考慮する必要があることを指摘したいと思います。クライアント側はユーザーフレンドリーにはうってつけですが、それを回避するのは非常に簡単です。したがって、ポストバックを受け取るPHPコードは、テキストボックスの内容が利用可能な最大残高よりも大きくないかどうかを確認する必要があります。そうであれば、エラーメッセージを表示してユーザが修正できるようにします。 – ADyson

+0

@ADysonあなたは正しいですが、すべてのキー入力時に入力を検証したい場合は、最初に単純なJS検証に頼るよりも、より深い規則でPHP検証に情報を渡す方が良いでしょう。 – Justinas

0

コール機能や口座残高値で値をユーザが入力した値を比較し、ユーザーの最大限度などのデフォルト値に置き換えてください。

if (usersvalue > accountbalance) { 
     $('#valuetextbox').val=accountbalance; 
    /* this is used to replace the value use the id or class selector to replace the value */ 
} 
関連する問題