2012-07-24 81 views
0

虽然这是一个很常见的问题。我有一个输入字段,其中输入的数据必须在1到150之间。输入栏的限制范围

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

在一个字段mesure我想添加额外的功能。我试着用validate。 我不知道如何在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; 
    } 
}  

回答

0

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

0

例如,如果要限制你的输入字段的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。