请考虑以下HTML表:
<table id="myTable1">
<tr><td><input type="text" id="quantity1" name="quantity1" /></td></tr>
<tr><td><input type="text" id="quantity2" name="quantity2" /></td></tr>
</table>
<table id="myTable2">
<tr><td>
<input type="text" id="total_quantity" name="total_quantity" />
<input type="text" id="total_quantity_max" name="total_quantity_max" />
</td></tr>
</table>
我要做的是提醒用户 total_quantity 中的值变得大于 total_quantity_max中的值。
起初我认为可以通过以下方式实现:
$('#myTable1 input[id^=quantity]').live('keyup',function() {
var n = $("#myTable2 #total_quantity").val();
var m = $("#myTable2 #total_quantity_max").val();
if(n > m) {
alert("Alert!");
}
});
然而,我遇到了使用上述代码的问题,例如;即使 total_quantity 清除中的值不是&gt;,也会触发警报total_quantity_max
答案 0 :(得分:2)
使用parseInt
- val
将返回一个字符串,字符串与整数有不同的比较规则。
if(parseInt(n, 10) > parseInt(m, 10)) {
alert("Alert!");
}
答案 1 :(得分:2)
这是因为比较是用字符串而不是数字完成的。尝试使用parseFloat
。
$('#myTable1 input[id^=quantity]').live('keyup',function() {
var n = $("#myTable2 #total_quantity").val();
var m = $("#myTable2 #total_quantity_max").val();
if(parseFloat(n) > parseFloat(m)) {
alert("Alert!");
}
});