新的textarea onfocus无法正常工作

时间:2014-12-08 05:50:31

标签: javascript jquery html

我有这个界面:
enter image description here
当单击“添加另一个”按钮时,我将必须添加另一个看起来与此相同的界面,以便整个界面看起来像这样:
enter image description here
我有了textarea的属性onfocus,以便在焦点时清除它的内容,并且它完全正常工作,这是它的代码:

<textarea name="educationDescription1" id="educationDescription1" rows="5" cols="33" onfocus="clearContents(this);">Describe your studying experience in a couple of sentences.</textarea>

现在我遇到了为创建的textarea做同样的问题,尽管我使用了相同的语法!这是用于创建新文本区域的代码:

var node6 = document.createElement("textarea");
node6.rows="5";
node6.cols="33";
node6.onfocus="clearContents(this);";
node6.value="Describe your working experience in a couple of sentences.";
node6.name="experienceDescription"+experiences;
node6.id="experienceDescription"+experiences;

知道可能是什么问题吗? 谢谢

3 个答案:

答案 0 :(得分:1)

此:

node6.onfocus="clearContents(this);";

应该替换为:

node6.onfocus=function(){clearContents(this);};

答案 1 :(得分:1)

我猜您可能希望使用placeholder属性而不是onfocus。 如果您使用onfocus,即使用户输入了有效数据,每当用户对其进行聚焦时,textarea也会被清除。

使用jQuery设置placeholder的代码可能是这样的:

var node6 = $("<textarea></textarea>");
...
node6.attr('placeholder','Describe your working ...');

这是小提琴。 http://jsfiddle.net/naokiota/j687tg80/2/

希望这有帮助。

答案 2 :(得分:1)

node6.onfocus中,onfocus需要一个函数引用。您正在分配一个字符串。应该是这样的,

node6.onfocus=function(){clearContents(this);};

或者您可以使用addeventListner功能

node6.addEventListener('onfocus',function(){clearContents(this);});

或者如果你想将onfocus添加到html中,你必须创建一个新属性并将其设置为这样。

var attr = document.createAttribute('onfocus');
attr.value="clearContents(this)";
node6.setAttributeNode(attr);