我不使用jQuery,除非这会迫使我。
我看似简单的HTML文档有一个带有3个输入的div,其中第3个由于某种原因,我无法重置。我清理后的显示代码如下所示:
<div>
<label>LIMIT 1
<select id="limit1">
<option value="1">Choice1</option>
<option value="2">Choice2</option>
</select>
</label>
<label>LIMIT 2
<select id="limit2">
<option value="1">Choice1</option>
<option value="2">Choice2</option>
</select>
</label>
<label>ENTER A VALUE
<input type="text" id=“parm2” value="20" size="3" maxlength="4">
</label>
</div>
这是我的验证和重置代码:
var limit1 = document.getElementById("limit1");
var limit2 = document.getElementById("limit2");
if (limit2.value < limit1.value) {
alert("ERROR: 1st must be less than 2nd");
limit1.value = 1;
limit2.value = 2;
return false;
} // Above resets of select options works!
var uValue = document.getElementById(“parm2”).value;
if (isNaN(uValue)) {
uValue.value = "20"; // This reset fails!
return false;
}
感谢您的帮助。
答案 0 :(得分:1)
var uValue = document.getElementById(“parm2”).value;
选择元素的值,而不是元素。所以&#34; 123&#34; .value没有意义,如果要重置其值,请存储该元素。
var uElement = document.getElementById('parm2');
// later on
uElement.value = 20;
附注:属性访问通常并不昂贵,因此将存储元素并稍后使用.value访问该值是完全可以接受的,而不是使用两个变量。
答案 1 :(得分:0)
您正在访问.value
两次
var parm2 = document.getElementById(“parm2”);
if (isNaN(parm2.value)) {
parm2.value = "20"; // This reset no longer fails!
return false;
}