javascript - 无法在 javascript 中验证用户输入
问题描述
我正在尝试在我的情况下验证用户输入,输入是用户输入的颜色名称,这是代码片段
let valideColor = false;
do{
const selected_color = $('#SelectedColorPicker').val();
if (selected_color === '') {
console.log('Not valid')
}
else {
validColor = true;
}
}while(!validColor)
上面的代码会产生一个无限循环,导致我的浏览器崩溃,如果有人能告诉我问题出在哪里,我将不胜感激。
解决方案
您有一个无限循环,因为您在循环中连续运行代码,而不是让用户有机会输入任何输入 - 当用户输入将是唯一的方法来validColor
实现并因此跳出循环时。
循环在这里是完全错误的方法。您只需要在某些点进行检查,大概是当用户尝试提交此输入所属的任何表单时。所以你应该做这样的事情:
$("#idOfMyForm").submit(function(e) {
const selected_color = $('#SelectedColorPicker').val();
if (selected_color === '') {
console.log('Not valid');
e.preventDefault();
}
});
警告用户(当然console.log
,任何没有打开浏览器控制台的人都不会注意到这一点,所以绝大多数用户不会注意到),并停止提交表单。
推荐阅读
- ios - 在 Storekit 的应用程序启动时添加事务队列观察器的最佳实践
- php - Laravel 5 - Text to Encrypted Password
- css - CSS 选择器,但不是在存在另一个类时
- java - 意外字符“60” - 尝试登录 RTC java api 时出错
- angular - 使用 Nativescript 显示/隐藏密码文本
- javascript - 如何生成随机数,数字的长度需要为21并且在Postman中要以“01”为前缀
- python - 如何获取修饰属性方法的方法名称?
- google-bigquery - 创建按一/多列分区的 BigQuery 外部表
- amazon-web-services - 将多个表(或整个模式)从一个集群复制到另一个集群
- javascript - 复制 html 但计算 css 和 html 代码的按钮