JavaScript中input输入框value值重置不生效问题排查
问题原因
- 变量取值错误:你在声明
name、surname、mail、age变量时,直接获取了DOM元素的value属性,此时这些变量存储的是字符串值,而非DOM元素对象,无法通过修改.value属性反向修改输入框内容 - 变量名不匹配:你存储邮箱输入框值的变量名为
mail,但重置时错误使用了未声明的email变量 - 遗漏了age下拉选择框的重置逻辑
修正方案
你的HTML代码本身无逻辑错误,仅需替换JavaScript代码即可生效,修正后代码如下:
function send() { // 先存储DOM元素对象,而非直接取value var nameEl = document.getElementById('name'); var surnameEl = document.getElementById('surname'); var emailEl = document.getElementById('email'); var ageEl = document.getElementById('age'); var text = document.getElementById('text'); // 取值时从DOM元素获取 var name = nameEl.value; var surname = surnameEl.value; var mail = emailEl.value; var age = ageEl.value; if (!name || !surname || !mail) { alert("Enter all values"); text.value = "False input"; return; } else { var con = "You sur ?"; if (confirm(con)) { text.value = "Good input"; } } // 重置输入框,操作DOM元素的value属性 nameEl.value = ""; surnameEl.value = ""; emailEl.value = ""; ageEl.value = "17"; // 重置为默认第一个选项,可根据需求调整 }
内容的提问来源于stack exchange,提问作者itmemilan
相关产品推荐
相关产品推荐

