我想点击 p html元素来更改输入文字值。
代码段就像这样
input type="text" id="query" name="quer" runat="server"/>
p id="demo" click="myFunction()"></p>
myFunction()位于主Html文件中的abc.js文件中。
function myFunction(){
var elem = document.getElementById("query"); // Get text field
elem.setAttribute('value','Insert a correct email');
}
请帮忙。 提前致谢
答案 0 :(得分:2)
p 标记上的事件应该是 onclick ,而不是点击。更新 p 标记,如下所示,
<p id="demo" onclick="myFunction()">Click Here</p>
就是这样,你的代码运行正常。
参考文献: onclick
答案 1 :(得分:1)
click
应为onclick
<p id="demo" onclick="myFunction()"></p>
但是,我建议您使用.value
而不是setAttribute
:
elem.value = 'Insert a correct email';
setAttribute
实际上正在更改 HTML属性,如果您打开devtool并观察结构,则可以看到它。但你想要的是操纵 DOM属性。
例如,您在HTML文件中有<input value="123">
。在页面中你输入了一些内容,比如&#34; 456&#34;。现在你可以看到差异:
document.querySelector('input').getAttribute('value') // '123', HTML attribute
document.querySelector('input').value // '456', DOM property
一开始,HTML属性将填充到DOM属性作为初始值。但是一旦你触及DOM属性,例如您在字段中输入内容后,更改HTML属性将 NOT 动态更改DOM属性。顺便说一句,在提交表单时,实际发送的值是DOM属性,而不是HTML属性。
function myFunction(){
var elem = document.getElementById("query"); // Get text field
elem.value = 'Insert a correct email';
}
&#13;
<input type="text" id="query" name="quer" runat="server"/>
<p id="demo" onclick="myFunction()">Click Here</p>
&#13;