双击时,我想要清除文本输入框(仅单个文本输入)。
这是HTML
</div>
<div class="form-group">
<label for="green" class="control-label green col-md-2">Green:</label>
<div class="col-md-2">
<input type="text" id="green" ondblclick="Clear();" class="form-control"/>
</div>
和JavaScript
function Clear()
{
this.value="";
}
它似乎没有工作,有谁知道什么是错的?
答案 0 :(得分:1)
this
在这种情况下不起作用,因为它引用窗口对象而不是docuement.getElementById
。
function Clear()
{
document.getElementById('green').value="";
console.log(this);
// this..value="";
}
&#13;
</div>
<div class="form-group">
<label for="green" class="control-label green col-md-2">Green:</label>
<div class="col-md-2">
<input type="text" id="green" ondblclick="Clear();" class="form-control"/>
</div>
&#13;
或者您可以将元素传递给Clear函数,如下所示:
function Clear(element)
{
element.value = "";
}
&#13;
</div>
<div class="form-group">
<label for="green" class="control-label green col-md-2">Green:</label>
<div class="col-md-2">
<input type="text" id="green" ondblclick="Clear(this);" class="form-control"/>
</div>
&#13;
答案 1 :(得分:0)
您可以使用以下代码。
HTML
<div class="form-group">
<label for="green" class="control-label green col-md-2">Green:</label>
<div class="col-md-2">
<input type="text" id="green" ondblclick="Clear(this);" class="form-control" />
</div>
</div>
JS
function Clear(x) {
x.value = "";
}
希望这会对你有所帮助。
答案 2 :(得分:0)
试试这个:
function Clear() {
var _green = document.getElementById(this.event.target.id);
_green.value="";
}
在上面的代码中,我们使用this.event.target.id
检测被调用函数的ID。获取ID后,使用document.getElementById()
获取DOM元素并将值设置为空白。
答案 3 :(得分:0)
您需要将this
作为参数传递给函数:
function Clear(that) {
that.value = "";
}
&#13;
<div class="form-group">
<label for="green" class="control-label green col-md-2">Green:</label>
<div class="col-md-2">
<input type="text" id="green" ondblclick="Clear(this);" class="form-control" />
</div>
</div>
&#13;
答案 4 :(得分:0)
为了在不更改函数内部任何内容的情况下完成此工作,您可以像这样绑定元素:
... ondblclick="Clear.call(this);" ...
在Clear()
内,您将使用this
引用该元素。
你也可以传递这样的事件:
... ondblclick="Clear.call(this, event);" ...
然后,您的功能将如下所示:
function Clear(event)
{
// ...
}
您还可以单独注册事件处理程序:
document.getElementById('green').addEventListener('dblclick', Clear);