我在网上找到了很多关于如何清除你点击的同一文本字段的例子,但我希望用户点击文本字段1,然后清除文本字段2,反之亦然。
这几个小时都在挣扎。我遇到的问题是我没有错误,没有输出,但它不起作用。我不知道问题是什么。
我的代码:
<jsp:useBean id="speed" class="java.lang.String" scope="request" />
<jsp:useBean id="force" class="java.lang.String" scope="request" />
<script>
function clearSpeed() {
var x = document.getElementByID(speed);
x.value = "";
}
function clearForce() {
var x = document.getElementByID(force);
x.value = "";
}
</script>
<input type="text" id="speed" onfocus='clearForce()' value="<%=speed%>">
<input type="text" id="force" onfocus='clearSpeed()' value="<%=force%>">
答案 0 :(得分:2)
您需要引用字符串,JavaScript区分大小写 - 函数为getElementById()
:
function clearSpeed() {
var x = document.getElementById('speed'); // added quotes around the id
x.value = "";
}
function clearForce() {
var x = document.getElementById('force'); // added quotes around the id
x.value = "";
}
更好的是:
<input type="text" id="speed" onfocus="clearValue('force')" value="<%=speed%>">
<input type="text" id="force" onfocus="clearValue('speed')" value="<%=force%>">
调用单个函数(我还更改了引号以获得更好的一致性)
更新了JavaScript:
function clearValue(id) {
var x = document.getElementById(id); // no need for quotes and value passed in as variable
x.value = "";
}
这促进了可重复使用的代码并减少了重复
var x = document.getElementById(id);
x.value = "";
可能会成为(如果你真的想缩短它!)
document.getElementById(id).value = "";
除非你想用DOM元素做其他事情
,否则不需要使用变量