如何确保jQuery中值的增量为12?

时间:2011-08-22 21:29:25

标签: javascript jquery

好的,所以我有一个ajax调用,我需要预先形成当且仅当用户的数量为12,因为这些项目是以数十个出售

这是我的HTML

<input class="items" type="text" name="quantity_26" size="3"></span><br>
<input class="items" type="text" name="quantity_27" size="3"></span><br>
<input class="items" type="text" name="quantity_28" size="3"></span><br>
<input class="items" type="text" name="quantity_29" size="3"></span><br>

这是我用于ajax调用的jQuery

if(is_mulitple_of_12){
    $.ajax({
        url: 'processing.php',
        type: 'post',
     ...
   ...
}

很明显,is_mulitple_of_12变量是我需要找到的方法。我想的可能是Modulus javascript运算符,但我想知道是否有更好的方法

2 个答案:

答案 0 :(得分:1)

$('input[type=text]').each(function () {

    var total = new Number($(this).val());
    if((total % 12) == 0) {
         /* Is multiple of 12 */
         $.ajax({
              url: 'processing.php',
              type: 'post',
              ...
         });
         ...
    }
    else {
       /* Is not multiple of 12 */
    }
}

其中total是您要为多重性测试的变量。

希望它有所帮助。

编辑:对于您的问题,我了解您要解析name属性中的值而不是获取输入值,因此我在代码中修复了此问题;)

答案 1 :(得分:0)

测试猜测不是0而modulo等于零

var total = 0;
$('.items').each(function() {
    total += parseInt($(this).val() || 0, 10);
});
if (total && total % 12 == 0) {
    // Mulitple of 12
    alert(total);
}

这是我的编辑示例:http://jsfiddle.net/k5cEU/1

  1. )使用类.item
  2. 循环每个元素
  3. )如果该元素的值为null / undefined,则将其设置为零
  4. )使用基数的parseInt获取值的整数表示
  5. )将其汇总为总数
  6. )确保总数不为零&amp;是12的倍数
  7. 注意:(0 % 12 == 0); // true, which you don't want