制作文本框只有5的倍数

时间:2012-10-04 08:18:39

标签: javascript

我正在尝试让文本框在用户输入数字1时向用户发送消息,例如。然后应该显示一个弹出窗口,说该产品只有5的倍数。

这是我的代码。

<script language="JavaScript">
function chk_boxquantity(inField) {
    step3_submit_disable();

    var fVal = inField.value;
    var fBoxQuantity = 5;

    if (mod(fVal, fBoxQuantity) != 5) {
        alert('This product is only available in multiples of '+fBoxQuantity);
        inField.value = Math.ceil(fVal/fBoxQuantity)*fBoxQuantity;
        setTimeout(function() {
            inField.focus();inField.select();gAutoBlur = false;
        }, 10);
    }

    step3_submit_enable();
}
</script>

这是文本字段。

<input type="text" onkeypress="return handleEnter(this, event);" 
onblur="chk_boxquantity(this);" name="qty[<?php echo $card['id']; ?>]" 
size="3" />

因此,只要用户点击,它就会弹出消息。这不行,任何想法为什么不呢?

谢谢,

约拿

3 个答案:

答案 0 :(得分:1)

将您的代码从mod()更改为% operator DEMO

FROM

 if (mod(fVal, fBoxQuantity) != 5)

  if ((fVal % fBoxQuantity) != 0) 

完整功能可能如

function chk_boxquantity(inField)
{
    var fVal = inField.value;
    var fBoxQuantity = 5;

    if ((fVal % fBoxQuantity) !== 0)
    {
     alert('This product is only available in multiples of '+fBoxQuantity); 
      inField.value = Math.ceil(fVal/fBoxQuantity)*fBoxQuantity ;
    }

}

仅显示所需的代码。

答案 1 :(得分:1)

尝试更改:

if (mod(fVal, fBoxQuantity) != 5) {

为:

if ((fVal % fBoxQuantity) != 0) {

您可以看到模数运算符here的说明。

答案 2 :(得分:1)

你想检查mod操作的剩余部分,如果它大于零,则它不能被5整除

// mod
10 % 5 === 0

// div
10 / 5 === 2

因此,您需要将!= 5更改为!= 0