2012-11-22 158 views
44

如何更改输入元素的占位符文本?更改占位符文本

例如我有3个输入类型的文本。

<input type="text" name="Email" placeholder="Some Text"> 
<input type="text" name="First Name" placeholder="Some Text"> 
<input type="text" name="Last Name"placeholder="Some Text"> 

我怎样才能改变使用的JavaScriptjQuery的一些文本文本?我真的需要解决这个问题来解决我的问题。

+8

你试过'$('input')。attr('placeholder','Some New Text');'? – Jeemusu

+1

你有没有尝试过使用javascript或jquery?请发布您尝试过的以及您遇到的问题。 – ryadavilli

+0

您可以使用malarkey –

回答

87

可以使用getElementsByName()方法选择input领域和改变placeholder为每一个......看到下面的代码...

document.getElementsByName('Email')[0].placeholder='new text for email'; 
document.getElementsByName('First Name')[0].placeholder='new text for fname'; 
document.getElementsByName('Last Name')[0].placeholder='new text for lname'; 
+21

+1不需要使用外部库即可进行本地化...人们需要关注DOM API,您可能不需要使用整个库来完成简单的事情。 –

+0

通常该字段已包含一个值,因此占位符将不可见。您必须清除该值。 'var email = document.getElementsByName(“Email”)[0];' 'email.value ='';' 'email.placeholder ='email text';' – askrynnikov

4

使用jQuery您可以通过下面的代码做到这一点:

<input type="text" id="tbxEmail" name="Email" placeholder="Some Text"/> 

$('#tbxEmail').attr('placeholder','Some New Text'); 
25

该解决方案使用jQuery的。如果您想使用相同的占位符文本所有文本输入,您可以使用

$('input:text').attr('placeholder','Some New Text'); 

如果你想不同的占位符,你可以使用元素的ID改变占位

$('#element1_id').attr('placeholder','Some New Text 1'); 
$('#element2_id').attr('placeholder','Some New Text 2'); 
+0

是的!这工作! – visual

4

我一直˚F遇到同样的问题。

在JS中,首先你必须清除文本输入的文本框。否则,占位符文本将不会显示。

这是我的解决方案。

document.getElementsByName("email")[0].value=""; 
document.getElementsByName("email")[0].placeholder="your message"; 
+0

没错。如果不先将字段设置为空,则占位符不会显示。花了很长时间,直到我碰到这个帖子。 – User12345

0

尝试访问输入的占位符属性,并更改类似下面的值:

$('#some_input_id').attr('placeholder','New Text Here'); 

还可以清除占位符如果需要,如:

$('#some_input_id').attr('placeholder','');