限制输入字段的范围


Limiting range of input field

尽管这是一个非常常见的问题。我有一个输入字段,其中输入的数据必须在1到150之间。

问题是我已经在使用一些验证了。该验证正被许多其他输入字段使用。所以我无法改变这一点。它是num()函数。

在一个字段mesure上,我想添加额外的功能。我试过验证。我不知道如何使用document.ready中的两个函数将这两个验证合并为一个输入字段。

我可以在jQuery或PHP中完成。

<input type="text" name='mesure' class="numbersonly" maxlength="3" onblur =" validate()"/>

function num() {
    $(".numbersonly").bind('keypress', function(e) {
        if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
            $("#errmsg").html("numbers please");
            return false;
        }
    });
}
function validate()
{
   if( document.form.mesure.value >150 )
   {
       alert( "out of range!" );
       document.form.mesure.focus() ;
       return false;
   }
}      

为什么不使用onkeypress/onkeyup,请使用validate函数进行检查。但请记住,javascript并不是限制的真正解决方案——人们可以使用或更改javascript。还可以使用php来检查值。

例如,如果您想要限制的输入字段具有id#text,则可以使用

if($('#text').val().length>150){
    //do stuff here
}

由于您可能会将输入的值发布到后端的某个位置,因此真正的验证必须在php中进行。在那里,你可以做一些类似的事情

<?php
    if(strlen($_POST['text'])>150){
        echo "too long";
        exit;
    }
    //do other backend stuff here
?>

使用javascript进行验证的好处仅在于它可以立即向用户反馈他是否做错了什么。然而,客户端总是可以看到像jQuery/Javascript这样的客户端代码,因此要进行最终验证,请使用php。