sto lavorando con percentuale e l'setInterval()
quindi ho unisNaN() JavaScript, numero di 2 virgole
var intervalId;
function randomize(){
var prc = $("#prc").val();
var c = 0 ;
if (!intervalId){
intervalId = setInterval(function(){
c = c + 1;
var attempt = Math.random() * 100;
if (attempt <= prc){
clearInterval(intervalId);
intervalId = false;
$("#attemptnbr").val(c);
}
}, 100);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Percentage : <input type="text" id="prc"/>
<button onclick="randomize()">GO</button>
Number of attempts :<input type="text" id="attemptnbr"/>
Ma in realtà se l'utente impostare l'ingresso #prc
a 50.345.34
, la condizione attempt <= prc
restituisce sempre true
. Ho provato a console.log(isNaN(prc))
quando questo input è impostato su un numero come 50.345.34
e restituisce sempre false
.
Perché è considerato un valore numerico?
Questo valore di input non è un numero anche se ''? –
@TerryRapt: Sì, il 'valore' di un' input' è * sempre * una stringa, anche per i nuovi tipi di input. 'val' di jQuery restituirà sempre una stringa (se ci sono elementi nel set jQuery su cui la chiamate) o' undefined' (se il set è completamente vuoto, ma non si applica nel tuo caso presumo). –
Grazie per tutte queste informazioni, mi ha davvero aiutato. –