Я делаю простое сравнение чисел в событии keyUp поля ввода. По какой-то причине я не получаю ожидаемого результата, и я не могу понять, почему. То, что должно было, состоит в том, что если введенное пользователем число больше, чем указано в атрибуте html, фон должен быть красным, иначе он останется белым. Простое включение «9» приведет к красному фону. ??javascript условное возвращение неожиданного результата
var admin = $('input[name="diskStorage"]').attr('data-adminstorage'); // 2097152000
$('#new-user input[name="diskStorage"]').keyup(function(){
if(admin < $(this).val())
$(this).css('background','red');
else
$(this).css('background','white');
});
Когда я отлаживать эти значения, if(2097152000 < 549)
возвращается верно. Вот HTML, в случае, если это делает никакой разницы:
<form action="administrate.php" method="post" id="new-user">
<table><tbody><tr>
...
</tr><tr>
<td>Disk Storage Limit:</td>
<td>
<input type="text" data-adminStorage="2097152000" name="diskStorage" value="" /> megaBytes<br />
<span id="info"></span></td>
...
</tr></tbody></table>
Здесь живут: http://jsfiddle.net/JMC_Creative/dqAJj/2/
Унарный '+' - лучший способ, чем 'parseInt (str, 10)' на мой взгляд. Пример: '+ str' вместо' parseInt (str, 10) '. – Reid
@Reid Каким образом это «лучше»? –
Это неправда. '' 2097152000 '<' 549'' является абсолютно верным и приводит к 'true'. –