[英]JavaScript ondblclick not working
我试图双击时清除一个文本输入框( 仅输入一个文本)。
这是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="";
}
似乎没有用,有人知道错在哪里吗?
this
在这种情况下不会工作,因为它是指的窗口对象,而不是使用docuement.getElementById
。
function Clear() { document.getElementById('green').value=""; console.log(this); // this..value=""; }
</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>
或者您可以将元素传递给Clear函数,如下所示:
function Clear(element) { element.value = ""; }
</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>
您可以使用以下代码。
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 = "";
}
希望这对您有所帮助。
尝试这个:
function Clear() {
var _green = document.getElementById(this.event.target.id);
_green.value="";
}
在上面的代码中,我们使用this.event.target.id
检测了被调用函数的ID。 获取ID后,使用document.getElementById()
获取DOM元素并将值设置为空。
您需要this
作为参数传递给函数:
function Clear(that) { that.value = ""; }
<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>
为了在不更改函数内部任何内容的情况下进行这项工作,您可以像这样绑定元素:
... ondblclick="Clear.call(this);" ...
在Clear()
内部,您将使用this
引用元素。
您也可以像这样通过事件:
... ondblclick="Clear.call(this, event);" ...
然后,您的函数将如下所示:
function Clear(event)
{
// ...
}
您还可以单独注册事件处理程序:
document.getElementById('green').addEventListener('dblclick', Clear);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.