不断获得文本输入的价值

时间:2014-05-05 02:05:59

标签: javascript html

以下代码:

<script>
var text = document.form.text.value;
function test() {
    if(text == "" || text == null){
        alert('No value');
        return false
    }else{
        alert(text);
        }
};
</script>
<form>
<input type="text" name="text" id="text_one"/>
</form><a id="button" onClick="test();">Enter</a><br />
<div id="title_box"></div>

为什么它会一直警告并且没有价值&#39;即使写了什么东西?还有什么必须这样做,以便每次输入新值时,函数都会获得新值而不是旧值?

3 个答案:

答案 0 :(得分:2)

function test() {
    text = document.forms[0].text.value; 
    if(text == "" || text == null){
        alert('No value');
        return false;
    }else{
        alert(text);
        }
};

将text var放入函数中。另外,请注意使用document.forms [0],或者按照建议给出表单名称/ id。

答案 1 :(得分:0)

因为您必须在表单结束标记</form>之后移动脚本块,或者您必须将变量代码放在window.onload中的脚本块中

window.onload = function(){
   var text = document.form.text.value;
}

function test() {
   if(text == "" || text == null){
        alert('No value');
        return false
     }else{
        alert(text);
      }
 };

<form>
<input type="text" name="text" id="text_one"/>
</form>

<script>
var text = document.form.text.value;
function test() {
    if(text == "" || text == null){
        alert('No value');
        return false
    }else{
        alert(text);
        }
};
</script>

<a id="button" onClick="test();">Enter</a><br />
<div id="title_box"></div>

说明:函数是正确的,但是在创建DOM之前初始化了文本变量,因此它将包含undefined值。这就是为什么在通过将脚本代码放在表单之后加载DOM之后必须初始化它,或者通过在window.onload中初始化它来初始化它。

答案 2 :(得分:0)

试试这段代码......有一些变化:

<script>
    var text = document.forms.myForm.text.value.trim();
    function test() {
        if(text == "" || !text){
            alert('No value');
            return false;
        } else {
            alert(text);
        }
    }
</script>
<form id="myForm">
<input type="text" name="text" id="text_one"/>
</form>

总结:

  1. 返回false后,函数中缺少分号
  2. 为您的表单添加ID
  3. 使用trim()AND有效地检测文本的空值! (这里是!文本)