如何在html中隐藏“maxlength”

时间:2017-07-31 15:27:42

标签: javascript jquery html forms input

下面是我在注册和登录表单上使用的代码,限制用户输入有限数量的字符:

$( "#limit1" ).attr('maxlength','11').on('input', function() {
if ($(this).val().length>=11) {
    alert('Maximum 11 characters are allowed!');       
}
});

然而,通过“检查元素”,他们能够在html中编辑最大长度并提交表单。

那我怎么能阻止这个呢?我正在寻找任何合适的解决方案,以防止用户注册/输入超过允许的字符。

3 个答案:

答案 0 :(得分:1)

根据Web开发的经验,从不信任任何客户输入,因为无法阻止任何人在网络浏览器中打开开发者工具编辑他们想要的东西。此外,大多数注册页面垃圾数据都来自机器人,它们会直接发布到您的注册页面,甚至不会打扰您可能写的任何支票。

因此,虽然您可以在客户端进行一些额外检查以避免实时服务器检查并保持网站快速运行,但必须始终检查数据服务器端,并相应地通知客户端如果他试图在表格中输入错误的数据。

有些答案需要JavaScript才能运行。很多机器人都会忽略JavaScript,并会根据需要将一些数据发布到您的服务器,不会受到任何客户端代码的困扰。

所以只需验证服务器端的数据。

答案 1 :(得分:0)

试试这个,将return false设为阻止提交表单。

  $( "#limit1" ).attr('maxlength','11').on('input', function() {
        if ($(this).val().length>=11) {
            alert('Maximum 11 characters are allowed!');       
            return false;
        }
        });

答案 2 :(得分:0)

您可以使用解决方案https://jsfiddle.net/9pc782eb/2/

$('#limit1').keypress(function(e){
   if($(this).val().length >= 11) {
      e.preventDefault();
      alert('Maximum 11 characters are allowed!'); 
   }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="limit1" />

按键上限制用户。