我正在尝试<label>
在我的 html 联系表单中使用元素,例如用于输入的 HTML5 占位符属性。我编写了以下 JavaScript 来充当可重用函数,女巫将提供以下功能。
- 按名称查找输入。
- 获取输入的值。
- 找到属于输入的标签。
- 根据输入的状态更改标签样式。
- 根据输入的值更改标签样式。
但是它不起作用,我不知道为什么控制台中没有出现错误。我究竟做错了什么?这是一个带有代码的 JS Fiddle
function placeholder(field_name) {
// Get the input box with field_name
// Then get input value
var box = document.getElementsByName(field_name);
var i;
for (i = 0; i < box.length; i++) {
var value = document.getElementById(box[i].value);
}
// Get the labels belonging to each box using the HTML for attribute
var labels = document.getElementsByTagName('LABEL');
for (i = 0; i < labels.length; i++) {
if (labels[i].htmlFor !== '') {
var elem = document.getElementById(labels[i].htmlFor);
if (elem) {
box.label = labels[i];
}
}
}
// Colors
var focusColor = "#D5D5D5";
var blurColor = "#B3B3B3";
// If no text is in the box then show the label grey color
box.onblur = function () {
box.label.style.color = blurColor;
};
// If input focuses change label color to light grey
box.onfocus = function () {
box.label.style.color = focusColor;
};
// If there is text in the box then hide the label
if (box.value !== "") {
// Quick do something, hide!
box.label.style.color = "transparent";
}
}
// Call the function passing field names as parameters
placeholder(document.getElementsByName("email"));
placeholder(document.getElementsByName("firstName"));
placeholder(document.getElementsByName("lastName"));