Tôi đang làm việc với tỷ lệ phần trăm và setInterval()
vì vậy tôi có mộtisNaN() javascript, số với 2 dấu phẩy
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"/>
Nhưng trên thực tế nếu người dùng thiết lập các #prc
đầu vào 50.345.34
, điều kiện attempt <= prc
luôn trả về true
. Tôi đã cố gắng để console.log(isNaN(prc))
khi đầu vào này được đặt thành một số như 50.345.34
và nó luôn trả về false
.
Tại sao nó được coi là giá trị số?
Giá trị đầu vào này có phải là số ngay cả khi ''? –
@TerryRapt: Có, 'giá trị' của' đầu vào' là * luôn luôn * một chuỗi, ngay cả đối với các loại đầu vào mới. 'Val' của jQuery sẽ chỉ bao giờ trả về một chuỗi (nếu có bất kỳ phần tử nào trong bộ jQuery bạn gọi nó) hoặc' undefined' (nếu tập hoàn toàn trống, nhưng không áp dụng trong trường hợp của bạn). –
Cảm ơn tất cả những thông tin này, nó thực sự đã giúp tôi. –