我无法通过javascript重置HTML输入字段

时间:2015-10-29 20:44:46

标签: javascript html dom

我不使用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;
}

感谢您的帮助。

2 个答案:

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