gpt4 book ai didi

javascript - 仅使用 javascript 验证表单并阻止用户提交禁用 JS 的表单?

转载 作者:行者123 更新时间:2023-12-03 09:51:57 24 4
gpt4 key购买 nike

我正在尝试为我的网站创建一个经过验证的注册表单,目前正在编写一个演示程序以供练习。我能够使用 javascript 验证表单。但是,我在某处读到表单应该在客户端和服务器端进行验证,因为可以禁用 JS。我想知道如果不满足所有 javascript 验证是否有一种方法可以简单地禁用提交按钮(我注意到 eBay 在他们的注册表中使用了类似的方法),如果是这样,我将如何完成这个?

这是我目前所处的位置:

<script type="text/javascript">
function validateEmail(email) {

var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

if(re.test(email)) {
document.getElementById('result').innerHTML = '<img src="http://iconlet.com/icons/kensaunders/4/CheckMark.png" style="width:15px;"/> Valid';
} else {
document.getElementById('result').innerHTML = '<img src="http://biglistbigsales.com/m/templates/GPT/images/x_xMarkRed4.png" style="width:15px;"/> Invalid';
}
}
function validatePass(pass){
if(pass.length < 6){
document.getElementById('pass-result').innerHTML='<img src="http://biglistbigsales.com/m/templates/GPT/images/x_xMarkRed4.png" style="width:15px;"/>Your password must be at least 6 characters';
}else{
document.getElementById('pass-result').innerHTML='<img src="http://iconlet.com/icons/kensaunders/4/CheckMark.png" style="width:15px;"/>valid';
}
}
function validateCPass(cpass){
var pass = document.getElementById('pass').value;

if(cpass != pass){
document.getElementById('cpass-result').innerHTML="Passwords must match";
}else{
document.getElementById('cpass-result').innerHTML='<img src="http://iconlet.com/icons/kensaunders/4/CheckMark.png" style="width:15px;"/>';
}
}
</script>
</head>
<body>
<form action="practice.php" method="post">
e-mail:<br/><input id="email" type="text" onblur="validateEmail(this.value)" /><span id="result"></span>
<br/><br/>Password:<br/><input type="password" id="pass" onblur="validatePass(this.value)"><span id="pass-result"> </span>
<br/><br/>Confirm Password:<br/><input type="password" id="confpass" onblur="validateCPass(this.value)"> <span id="cpass-result"></span>
<br/><input type="submit">
</form>
</body>

最佳答案

不,由于多种原因,这是不可能的:

  • 辅助功能。您客户的浏览器可能不支持 Javascript,或者用户可能已禁用它(是的,有些人支持)。

  • 安全性。网络应用程序向整个互联网公开一个 HTTP 接口(interface)。您甚至不需要浏览器来发送 HTTP 请求!因此,您的后端需要将任何 HTTP 请求视为不受信任并对其进行验证。对于来自不可信来源的所有数据都是如此。

因此:

服务器端验证对于任何正确的 Web 应用程序都是必须的。

客户端验证是一种 UI 增强功能,旨在通过提供更快的反馈来改善用户体验。

关于javascript - 仅使用 javascript 验证表单并阻止用户提交禁用 JS 的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11295446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com