在使用javascript的输入字段中,只接受20的倍数(例如40,60,80)

Accept only multiples of 20 (Ex. 40,60,80) on an input field using javascript?

本文关键字:例如 javascript 输入 字段      更新时间:2023-09-26

我是javascript的新手。我需要认真帮助使用javascript进行表单验证。以下是我需要的脚本。

当用户填写表格并输入20的倍数以外的数字时(如40,60,80100),他应该会收到警报。

示例:如果我在输入字段上输入45,我会得到一个错误,比如"你输入了一个无效的金额。"

{else}

张贴表单。

尝试使用%(模数)运算符

if ((+([value of inputfield])||1)%20 === 0) { /* is multiple of 20 */ }
//   ^convert to Number      ^
//                           ^if conversion fails, use 1 for value
//                            (so %-operation will not fail)

请参阅此jsfiddle以获得一个简单的示例

在jQuery 中

if($('#input_id').val() % 20 != 0)
{
    $('#input_id').val('');
    alert('You have entered an invalid amount.');
} 
else 
{ 
    //success
} 

@Kooilnc是正确的,但这里有一个更完整的解决方案:http://jsfiddle.net/nottrobin/vN3xK/

<form name="numberForm">
    <input type="number" name="number" />
    <button type="submit">submit</button>
</form>
<script>
    // NB: jQuery is required
    jQuery('[name="numberForm"]').bind(
        'submit',
        function(evt) {
            if(jQuery('[name="number"]').val() % 20 != 0) {
                alert('Your number is wrong');
                evt.preventDefault();
            }
        }
    );
</script>

我可以建议您使用%而不是regex吗,因为它要整洁得多。

相关文章: