所以我有一个问题,当鼠标离开输入字段并且输入字段为空或少于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语句中出现,而不会在其他语句中出现
答案 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
,""
,NaN
,null
,undefined
,当然还有false
;所有其他值都是 truthy 。