2014-07-07 51 views
0

我试图为我无权访问的表单设置占位符属性。我想使用该字段的名称来填充此字段。有谁知道一种方法来使用JavaScript来做到这一点。使用javascript设置表单字段占位符属性

这是表单字段的HTML:

<input type="text" onchange="checkdep(this);" onblur="validatefield(this);" value="" name="First Name" class="formTextfield" id="First_Name">

我能够做到这一点使用的getElementById,但想一些东西,而不必单独设置它在表单中的所有字段工作每个领域。

http://jsfiddle.net/XF6wT/5/

感谢

+0

如果页面只有一种形式,你可以得到它使用[*形式*](http://www.w3.org/html/wg/drafts/html/master/dom.html#dom-document-forms)集合:'document.forms [0]'。然后,您可以使用[* elements *](http://www.w3.org/html/wg/drafts/html/master/forms.html#dom-form-elements)集合遍历表单中的所有控件。然后,您可以计算出哪些是您希望添加占位符的输入元素。 – RobG

回答

0

尝试这样

var inputs = document.getElementsByTagName('input'); 
for (index = 0; index < inputs.length; ++index) { 
    inputs[index].setAttribute('placeholder', inputs[index].getAttribute("name")); 
} 

JsFiddle

一些事情,如果你需要将它限制成一种尝试

var inputs = document.forms["form_name"].getElementsByTagName("input"); 
+1

谢谢,这只是我所要求的。我已经在这里建议的解决方案,因为它处理一些可用性问题,出现http://bradfrostweb.com/blog/post/float-label-pattern/ – KeirRoyale

0

你应该使用:

document.getElementById("First_Name").setAttribute('placeholder', document.getElementById("First_Name").getAttribute("name")); 

你需要这个......我不知道..

检查:

更新:http://jsfiddle.net/XF6wT/6/

如果您需要表单的所有标签,那么您可以找到表单的所有标签,并通过for循环添加此标签。

+0

对不起,正确的链接在这里 http://jsfiddle.net/XF6wT/5/ – KeirRoyale

+0

谢谢,但这仍然要求我命名每个特定的元素。如果可能,我想要一些适用于表单中每个输入的东西。 http://jsfiddle.net/XF6wT/7/ – KeirRoyale