捕获CodeClick镜像文本框的onClick

时间:2014-07-17 12:15:46

标签: javascript codemirror

我需要一点Codemirror帮助。我想要做的是当我点击文本框时,我想获得它的ID。

使用纯HTML文本框,我可以获得textarea的ID。请参阅此处的代码:http://jsfiddle.net/aWAQY/

<form name="x" enctype="multipart/form-data" action="#" method="POST">
<textarea id="testextarea" name="testextarea" onClick="getname();"></textarea>
</form>
<script>
function getname() {
var tname = document.getElementById('testextarea').name;
alert(tname);
}
</script>

但是如果我通过onClick在CodeMirror文本框上调用getname()函数,则没有任何反应。实际上甚至没有onClick =&#34;警告(&#39; hello world&#39;);&#34;弹出。

我是否有其他特定方式可以获取CM textarea的ID和/或使onClick工作?

谢谢!

3 个答案:

答案 0 :(得分:1)

谢谢大家,发现它:这需要CM onmouse活动。 http://codemirror.net/doc/manual.html#events

不需要onClick,只需要添加到CM实例:

 instance.on("mousedown", function(instance, e) {
   var tname = document.getElementById('testextarea').id;
   alert(tname);
})

答案 1 :(得分:0)

尝试一下,我认为这样可行。

<form name="x" enctype="multipart/form-data" action="#" method="POST">
<textarea id="testextarea" name="testextarea" onClick="getname(this.id);"></textarea>
</form>
<script>
function getname(id) {
alert(id);
}
</script>

答案 2 :(得分:-1)

我不了解CodeMirror,但是那里的代码应该可以工作,我不会在CodeMirror中烦扰。

您还可以引用事件目标来获取事件处理程序中的名称:

function( event ) {
    var tname = event.target.name;
    alert( tname );
}

有关没有内联JS的示例,请参阅http://jsfiddle.net/feeela/aWAQY/1/

或更新版本,在dame textarea上使用两个事件处理程序:http://jsfiddle.net/feeela/aWAQY/2/