2017-01-30 8 views
0

指定された範囲外の値を入力すると、許容される最小値/最大値に更新されますが、varの値はmax /分。 keyup関数が実行最初に、その後のonchange(cadCheck)関数を実行し、ので、あなたの値が正しく更新されない https://jsfiddle.net/epf4uyr6/フォーム内の更新された値が新しいdivに正しく転送されない

function cadCheck(input) { 
    if (input.value < 2) input.value = 2; 
    if (input.value >= 100) input.value = 99.99; 
} 


document.getElementById('cad').onkeyup = function() { 
var cad = (this.value); 
document.getElementById("cad-quote").innerHTML = "Market: $" +cad; 
} 
+0

質問が不明確 – brk

+0

許容値より大きい/小さい値を入力すると、許可されずに変更されても保存されます。 たとえばBitcoinには1を入力します(これは0.08以上ですので、0.08に変更するコードを書いています)。ただし、引用符をクリックすると0.08の代わりに1が表示されます。 – NipBoss

+1

これは、onkeydownが'onchange'。 keydowに値を格納すると、なぜchangeイベントが発生したときに値がすでに格納されているのでしょうか。 .bitcoinのキーアップでinnerHTMLを変更する理由代わりに、ボタンをクリックすると変更します。 –

答えて

3

を(あなたは、両方のフォームに1を入力し、引用符をクリックして確認できます)。

あなたの現在のロジックはonchange関数内にあります。なぜ、値が正しく更新されないのですか?

この行をonkeyup関数に移動し、それをonchangeから削除します。

document.getElementById('cad').onkeyup = function() { 
        if (this.value >= 100) this.value = 99.99; 
        var cad = (this.value); 
        document.getElementById("cad-quote").innerHTML = "Market: $" +cad; 
       } 
関連する問題