以下是我在注册和登录表单上使用的代码,限制用户输入有限数量的字符:
$( "#limit1" ).attr('maxlength','11').on('input', function() {
if ($(this).val().length>=11) {
alert('Maximum 11 characters are allowed!');
}
});但是,通过"inspect元素“,他们可以在html中编辑最大长度并提交表单。
那么我怎么才能阻止这一切呢?我正在寻找任何合适的解决方案,以防止用户注册/输入超过允许的字符。
发布于 2017-07-31 23:36:36
作为web开发的经验法则,永远不会信任任何客户端输入,因为没有办法阻止任何人在web浏览器中打开开发人员工具并编辑他们想要的东西。此外,大多数注册页面垃圾数据来自机器人,它们会直接发布到您的注册页面,甚至不会影响您可能写的任何检查。
因此,虽然您可以在客户端放置一些额外的检查,以避免实时服务器检查,并保持您的网站快速运行,但您必须始终检查数据服务器端的,并相应地通知客户端,如果他试图在表单中输入不正确的数据。
有一些答案需要JavaScript才能工作。许多机器人都会忽略JavaScript,按照自己的意愿将一些数据发布到您的服务器上,并且不会被任何客户端代码打扰。
所以只需要在服务器端验证数据即可。
发布于 2017-07-31 23:32:55
试一试,放入return false以防止提交表单。
$( "#limit1" ).attr('maxlength','11').on('input', function() {
if ($(this).val().length>=11) {
alert('Maximum 11 characters are allowed!');
return false;
}
});发布于 2017-07-31 23:33:45
在这里,您可以使用解决方案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" />
在上,按键限制用户。
https://stackoverflow.com/questions/45419825
复制相似问题