你知道为什么会这样吗
function deleteInputOnClick(input){
champ = document.getElementById(input);
if(champ.value =='E-mail'){
champ.value = "";
}
}
可以这样工作
function deleteInputOnClick(input){
champ = document.getElementById(input).value;
if(champ=='E-mail'){
champ= "";
}
}
它没有?
这可能是一个愚蠢的小错误,但我真的不知道它可能在哪里。
感谢的
答案 0 :(得分:4)
您没有以第二种方式将值设置回元素,您只需将其分配给局部变量,您仍然需要执行document.getElementById(input).value = champ;
答案 1 :(得分:1)
document.getElementById(input).value
返回一个字符串值,而document.getElementById(input)
返回一个引用(一个对象)。因此,在一种情况下,只更改局部变量的值,而在另一种情况下,原始对象仍然链接到DOM值。
答案 2 :(得分:1)
这是因为champ
是一个已赋予input
元素值的变量。
更改其值不会更改输入的值(,因为它不是双向绑定,您只是将值赋给它)
因此,您需要直接定位value
的{{1}}属性以更改其值
如果您尝试避免将input
用于很多地方,可以将.value
元素及其input
缓存用于不同的用途..
value