使用jQuery比较两个文本字段的值

时间:2011-10-12 13:41:42

标签: jquery html

请考虑以下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_max 包含一个常量整数值,而
  • total_quantity 将根据数量字段
  • 的值保存 SUM
  • total_quantity 的值会在数量字段
  • 时触发每次加密时更新


我要做的是提醒用户 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

2 个答案:

答案 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!");
    }
});