我想点击标签,但不能。这是我的代码:
function nameToggle(){
var NameInput = get("nameInput");
var labelName = nameInput.getLabel();
alert(labelName);
labelName.onclick = showAlert;
}
function showAlert(){
alert("onclick Event Detected");
}
这是我的HTML:
<div id="nameShow">
<div style="margin: 36px 0 0 50px;">
<input id="nameInput" label="Name" onkeydown="namesFunction()"/>
</div>
</div>
在输入中我想要onkeydown调用名称函数,它完美地工作但是当点击标签(名称)时我想切换。我在另一个函数中调用nameToggle。但我无法点击“姓名”。我不是在使用jQuery。只有Javascript。任何帮助表示赞赏。
答案 0 :(得分:0)
1)在您的函数nameToggle()
内,您已分配onclick到labelName
,但那是一个字符串(&#34; Name&#34;)。将onclick分配给NameInput
,这是元素:
function nameToggle(){
var NameInput = document.getElementById("nameInput");
var labelName = nameInput.getLabel();
alert(labelName);
NameInput.onclick = showAlert; // <---
}
2)由于你在函数内部进行onclick-assignment,你必须在nameToggle()
之前调用它,然后点击。
如果您不想要,那么您必须在外面执行一项功能:
document.getElementById("nameInput").onclick = showAlert;
编辑根据您的评论:只有DOM元素可以点击。您的label
只是元素的属性,您无法点击属性。在输入之前将标签设置为html中的真实元素,如下所示:
<label for="nameInput" onclick="showAlert()">Name</label>
for
- 属性表示此<label>
属于id = nameInput的输入。您可以在标签内分配onclick,如上所示,或者使用:
document.querySelector("label[for='nameInput']").onclick = showAlert;