这是代码: HTML :
<input type="text" id="name" name="name" placeholder="Your Name" onblur="namerr()">
<br>
<label id="name_labl">This field is required.</label>
CSS :
#name_labl {
display: none;
}
的JavaScript :
var nameForm = document.getElementById("name").value.length;
function namerr() {
if (nameForm < 1) {
document.getElementById("name_labl").style.display="block";
document.getElementById("name").style.borderColor="red";
} else {
document.getElementById("name_labl").style.display="none";
document.getElementById("name").style.borderColor="black";
}
<小时/> 我尝试使用多种方法,从使用
var name_form = document.forms["mailSender"]["name"].value.length;
代替document.getElementById("name").value.length;
到if (nameForm==null || nameForm=="")
代替nameForm<1
。
没有用。
你看,无论我做什么,我总是得到<input />
的实际值,就像这样 - <input type="text"
value="some value"
/>
。但是,我使用value
而不是placeholder
。
无论表单中的文本是什么,我总是会得到“0”,或者只是value.length
或.value
的任何内容。
所以我决定制作<input type="text" />
其值的内容,然后测量它的长度以确定表单是否已填充。
关于如何做的任何想法?
答案 0 :(得分:4)
读取后,如果值发生更改,则不会自动更新。您需要在函数内部读取它以获得最新值。
function namerr() {
var nameForm = document.getElementById("name").value.length;
if (nameForm < 1) {
document.getElementById("name_labl").style.display="block";
document.getElementById("name").style.borderColor="red";
} else {
document.getElementById("name_labl").style.display="none";
document.getElementById("name").style.borderColor="black";
}
}