以下代码:
<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;即使写了什么东西?还有什么必须这样做,以便每次输入新值时,函数都会获得新值而不是旧值?
答案 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>
总结: