输入验证未检测到空值

时间:2019-06-02 07:21:51

标签: javascript

所以我有一个问题,当鼠标离开输入字段并且输入字段为空或少于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');
    }
};

每当鼠标离开时,它应该输出一些东西。由于某种原因,它只会在else语句中出现,而不会在其他语句中出现

1 个答案:

答案 0 :(得分:4)

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

您想要其value属性:

if (username.value == "") {

但是请注意,用户可能会键入一个空格,在这种情况下,上述内容将是错误的,因为" "不等于""。您可以使用trim来解决此问题:

if (username.value.trim() == "") {

由于空字符串是 fassy ¹,因此您还可以保存一些输入内容:

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

¹“ falsy”-用作布尔值时强制false的任何JavaScript值都称为 falsy 值。伪造的值是0""NaNnullundefined,当然还有false;所有其他值都是 truthy