输入文本值未随<p>元素onclick </p>更改

时间:2014-12-05 07:38:23

标签: javascript

我想点击 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');
}

请帮忙。 提前致谢

2 个答案:

答案 0 :(得分:2)

p 标记上的事件应该是 onclick ,而不是点击。更新 p 标记,如下所示,

<p id="demo" onclick="myFunction()">Click Here</p>

就是这样,你的代码运行正常。

jsFiddle

参考文献: 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属性。

&#13;
&#13;
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;
&#13;
&#13;