1

例如,如果用户输入数字 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" />

所以无论用户点击哪里,它都会弹出消息。虽然这不起作用,有什么想法为什么不呢?

谢谢,

约拿

4

3 回答 3

1

将您的代码从更改mod()% operator 演示

 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 ;
    }

}

仅显示所需的代码。

于 2012-10-04T08:20:18.947 回答
1

尝试改变:

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

到:

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

您可以在此处查看模数运算符的描述。

于 2012-10-04T08:20:26.177 回答
1

您要检查 mod 操作的其余部分,如果它大于零,则它不能被 5 整除

// mod
10 % 5 === 0

// div
10 / 5 === 2

所以,你需要改变你!= 5!= 0

于 2012-10-04T08:20:47.997 回答