如何使<input type =“text”/>的字符串/内容成为其值?

时间:2015-07-21 16:53:58

标签: javascript html forms validation if-statement

这是代码: 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" />其值的内容,然后测量它的长度以确定表单是否已填充。

关于如何做的任何想法?

1 个答案:

答案 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";
    }
}