多个输入的数量输入为50的倍数

时间:2014-06-24 08:24:55

标签: jquery html

我已尝试使用此代码验证客户输入的数量,以便他们只能输入50的倍数......

$('form.basket').bind('change',function(evt) {
    if(jQuery('input.qty').val() % 50 != 0) {
        alert('Your number is wrong');
        evt.preventDefault();
    }
}
);

如果页面上只有一个数量框,则效果很好。但是,如果有多个输入,那么我正试图让它工作。 - 我不想在这里提交任何表格 - 非常感谢任何帮助

3 个答案:

答案 0 :(得分:5)

如果您不使用IE< 9版本,则更简单

<html>
<body>

<form action="demo_form.asp">
  <input type="number" name="points" step="50">
  <input type="submit">
</form>

</body>
</html>

step属性只允许用户通过mulltiple输入。

注意:Internet Explorer 9及更早版本不支持step标记的input属性。

来源:w3schools

答案 1 :(得分:2)

$('form.basket').bind('change',function(evt) {
    var flag = true;
    jQuery('input.qty').each(function(){
        if(jQuery(this).val() % 50 != 0) {
           flag = false;
           return false;//if one input is wrong,there is no need to verify others
        }
    })
    if(!flag){
        alert('Some number is wrong');
        evt.preventDefault();
    }
}
);

答案 2 :(得分:1)

您应该可以使用each function分别处理所有实例...

$('form.basket').bind('change',function(evt) {
    jQuery('input.qty').each(function(){
        if(jQuery(this).val() % 50 != 0) {
            alert('Your number is wrong');
            evt.preventDefault();
        }
    });
});

当然,您可能需要对警报执行某些操作以指示哪个输入字段存在问题。

Here is a working example

值得注意的是,用于验证时警报可能非常烦人。您可能希望考虑更新UI以指示错误。

Here is an example with inline validation