2012-07-11 102 views
2

我有一个注释框,并且在用户输入并按下回车键后还原占位符时遇到问题。将占位符还原为原始值

这里是我的textarea:

<textarea title="Write a comment..." itemID="@item.ID" class="comment" placeholder="Write a comment..." autocomplete="off" role="textbox" id="comment" style="margin-top:8px"></textarea> 

这是我尝试过,但它不工作:

$(msgBox).val($(msgBox).attr('defaultValue')); 

$(msgBox).val(''); 

不仅在占位符未被重置,但回车仍在此处。光标在第二行时textarea变空白。

+0

是否textarea的有一个属​​性命名为默认值?试试'attr('placeholder')'。 – 2012-07-11 18:25:42

+0

你使用什么浏览器?所有现代(HTML5)浏览器均自动支持占位符。 – Mottie 2012-07-11 18:28:15

+0

我正在使用Chrome。占位符工作,但我需要在用户按下Return之后重置它。 – Dave 2012-07-11 18:54:00

回答

2

你应该使用#标志由id选择一个元素,你也应该添加一个属性名称,请注意,在你的例子是没有defaultValue属性,选择没有返回,我添加了一个blur事件,火灾后textarea的失去它的焦点,如果teaxarea的值为空它设置placeholder属性值,因为它的价值:

$('#comment').blur(function(){ 
    if ($.trim(this.value) == "") { 
     $(this).val($(this).attr('placeholder')); 
    } 
}) 
+0

通过id或class来选择元素,它不应该有所作为。 – Mottie 2012-07-11 18:30:03

+0

@fudgey有什么区别? – undefined 2012-07-11 18:31:10

+0

那么,就像现在一样,你的回答是错误的。该问题的html将'comment'作为类名称。我的意思是,即使这个问题有'comment'作为id,你的答案仍然和OP所说的不起作用的一样:$(msgBox).val($(msgBox).attr(' '');' – Mottie 2012-07-11 18:32:08