0

我在网上找到了很多关于如何清除您单击的相同文本字段的示例,但我希望用户单击文本字段 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%>">
4

1 回答 1

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 元素做其他事情

于 2012-11-19T11:14:48.810 回答