入力フィールドのkeyUpイベントで単純な数値比較を行っています。何らかの理由で、私は期待された結果を得ていないので、理由を理解できません。 はになります。ユーザーが入力した数値がhtml属性に格納されている数値より大きい場合は、背景が赤くなり、そうでない場合は白くなります。単に「9」と入力すると背景が赤くなります。 ??javacript条件付き予期しない結果を返す
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)
がtrueを返します。ここでは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)'よりも良い方法です。例: 'parseInt(str、10)'ではなく '+ str'です。 – Reid
@Reidどのようにして「より良い」のですか? –
それは本当ではありません。 '' 2097152000 '<' 549''は完全に有効で、結果は 'true'です。 –