首页 > 解决方案 > 无法在 javascript 中验证用户输入

问题描述

我正在尝试在我的情况下验证用户输入,输入是用户输入的颜色名称,这是代码片段

let valideColor = false;

do{

      const selected_color = $('#SelectedColorPicker').val();

        if (selected_color === '') {
            console.log('Not valid')
        }
        else {
            validColor = true;
        }

}while(!validColor)

上面的代码会产生一个无限循环,导致我的浏览器崩溃,如果有人能告诉我问题出在哪里,我将不胜感激。

标签: javascript

解决方案


您有一个无限循环,因为您在循环中连续运行代码,而不是让用户有机会输入任何输入 - 当用户输入将是唯一的方法来validColor实现并因此跳出循环时。

循环在这里是完全错误的方法。您只需要在某些点进行检查,大概是当用户尝试提交此输入所属的任何表单时。所以你应该做这样的事情:

$("#idOfMyForm").submit(function(e) {
    const selected_color = $('#SelectedColorPicker').val();

    if (selected_color === '') {
        console.log('Not valid');
        e.preventDefault();
    }
});

警告用户(当然console.log,任何没有打开浏览器控制台的人都不会注意到这一点,所以绝大多数用户不会注意到),并停止提交表单。


推荐阅读