Javascript 输入验证未检测到空值

Javascript 输入验证未检测到空值,javascript,Javascript,所以我有一个问题,当鼠标离开一个输入字段时,如果输入字段是空的或者它输出的内容少于5个字符,我需要生成代码 我已尝试将.value放在getelementbyid之后。请知道,我不能使用按钮提交表单 var username = document.getElementById('username'); var user_length = username.length; username.onmouseout = function(){ if(username == ""){

所以我有一个问题,当鼠标离开一个输入字段时,如果输入字段是空的或者它输出的内容少于5个字符,我需要生成代码

我已尝试将.value放在getelementbyid之后。请知道,我不能使用按钮提交表单

var username = document.getElementById('username');
var user_length = username.length;

username.onmouseout = function(){
    if(username == ""){
        alert('hi');
        // var username_value = 
        //document.getElementById("username_output");
        // username_value.innerHTML ="Please fill in your username!";
        // username_value.style.color = 'red';
    }

    else if(user_length < 5){
        alert('smaller than 5');
    }
    else{
        alert('else');
    }
};
var username=document.getElementById('username');
var user_length=username.length;
username.onmouseout=函数(){
如果(用户名==“”){
警报(“hi”);
//变量username\u值=
//getElementById(“用户名_输出”);
//username\u value.innerHTML=“请填写您的用户名!”;
//用户名_value.style.color='red';
}
否则如果(用户长度<5){
警报(“小于5”);
}
否则{
警报(“其他”);
}
};

当鼠标离开时,它应该输出一些东西。出于某种原因,它只出现在else语句中,而不是其他语句中。您正在将
输入
本身(DOM元素,document.getElementById('username')的结果)与字符串进行比较,而不是与输入的值进行比较

您需要它的
属性:

if (username.value == "") {
但请注意,用户可能会在空格中键入,在这种情况下,上述内容将为false,因为
不等于
。您可以使用
trim
修复该问题:

if (username.value.trim() == "") {
由于空字符串是falsyñ,您还可以保存一些键入:

if (!username.value.trim()) {


“”“falsy”-当用作布尔值时强制为
false
的任何JavaScript值称为falsy值。falsy值是
0
NaN
null
未定义
,当然还有
false
;所有其他值都是真实的。

您正在将
输入
本身(DOM元素,document.getElementById('username')
的结果)与字符串(而不是输入值)进行比较

您需要它的
属性:

if (username.value == "") {
但请注意,用户可能会在空格中键入,在这种情况下,上述内容将为false,因为
不等于
。您可以使用
trim
修复该问题:

if (username.value.trim() == "") {
由于空字符串是falsyñ,您还可以保存一些键入:

if (!username.value.trim()) {

“”“falsy”-当用作布尔值时强制为
false
的任何JavaScript值称为falsy值。falsy值是
0
NaN
null
未定义
,当然还有
false
;所有其他价值观都是真实的