在输入中的任何内容之前输入空格会导致通过JavaScript读取的值为空。当我在中间有其他空格时,它不是空的,但是当我在输入一些文本后在开头放置一个空格时,该文本不会在调试器中显示在输入值上。
javascript
inputs = document.querySelectorAll(".report_info > div > input");
console.log(inputs);
for(let i = 0; i < inputs.length; i++){
inputs[i].classList += " empty";
inputs[i].addEventListener("input", evt=>{
evt.preventDefault();
value = inputs[i].value.trim();
if(value)
inputs[i].classList.remove("empty");
else
if(!inputs[i].classList.contains("empty"))
inputs[i].classList += " empty";
})
}
应该可以使用的
<div class="report_info">
<div>
<input type="text" name="students_name" required>
<label for="students_name">
<span>Student's Name</span>
</label>
</div>
<div>
<input type="text" name="student_id" required>
<label for="student_id">
<span>ID</span>
</label>
</div>
<div>
<input type="email" name="parent_phone" required>
<label for="parent_phone">
<span>Parent's Tele #</span>
</label>
</div>
<div>
<input type="text" name="semester_year" required>
<label for="semester_year">
<span>Semester/Year</span>
</label>
</div>
<div>
<input type="number" name="days_present" required>
<label for="days_present">
<span>Days Present</span>
</label>
</div>
答案 0 :(得分:0)
问题的原因是我输入的“数字”类型的值无效,它们什么也没返回。这意味着,如果用户在一串有效数字之后突然输入字母或不可接受的字符,则该值将为空。