Javascript 为什么脚本没有在所有输入元素上运行?
我正在使用此脚本隐藏页面上输入元素的默认值:Javascript 为什么脚本没有在所有输入元素上运行?,javascript,html,Javascript,Html,我正在使用此脚本隐藏页面上输入元素的默认值: <script> var active_color = '#000'; // Colour of user provided text var inactive_color = '#ccc'; // Colour of default text window.onload = formDefaultValues; function formDefaultValues() { var fields = getElementsBy
<script>
var active_color = '#000'; // Colour of user provided text
var inactive_color = '#ccc'; // Colour of default text
window.onload = formDefaultValues;
function formDefaultValues() {
var fields = getElementsByClassName(document, "input", "default-value");
if (!fields) {
return;
}
var default_values = new Array();
for (var i = 0; i < fields.length; i++) {
fields[i].style.color = inactive_color;
if (!default_values[fields[i].id]) {
default_values[fields[i].id] = fields[i].value;
}
fields[i].onfocus = function() {
if (this.value == default_values[this.id]) {
this.value = '';
this.style.color = active_color;
}
this.onblur = function() {
if (this.value == '') {
this.style.color = inactive_color;
this.value = default_values[this.id];
}
}
}
}
}
function getElementsByClassName(oElm, strTagName, strClassName){
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for (var i = 0; i < arrElements.length; i++) {
oElement = arrElements[i];
if (oRegExp.test(oElement.className)) {
arrReturnElements.push(oElement);
}
}
return (arrReturnElements);
}
</script>
var active_color='#000';//用户提供文本的颜色
var inactive_color='#ccc';//默认文本的颜色
window.onload=formDefaultValues;
函数formDefaultValues(){
var fields=getElementsByClassName(文档,“输入”,“默认值”);
如果(!字段){
返回;
}
var default_values=新数组();
对于(变量i=0;i
我使用这段代码对具有“default value”类的输入元素进行循环,并对它们执行操作。它真的对某些元素有效,但对其他元素无效?可能出了什么问题
提前谢谢这对我很有效
<html>
<script>
function ViewAllElements() {
var fe = document.forms['myForm'].elements;
alert(fe.length);
for(var i = 0; i < fe.length; i++)
{
alert(fe[i].value);
}
var ebc = getElementsByClassName(document, "input", "fieldA");
alert(ebc.length);
for(var j = 0; j < ebc.length; j++)
{
alert(ebc[j].value);
}
}
function getElementsByClassName(oElm, strTagName, strClassName){
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for (var i = 0; i < arrElements.length; i++) {
oElement = arrElements[i];
if (oRegExp.test(oElement.className)) {
arrReturnElements.push(oElement);
}
}
return (arrReturnElements);
}
</script>
<body>
<form id="myForm" name="myForm">
<input class="fieldA" id="field1" name="field1" value="field1value">
<input class="fieldA" id="field2" name="field2" value="field2value">
<input class="fieldA" id="field3" name="field3" value="field3value">
<input class="fieldB" id="field4" name="field4" value="field4value">
<input class="fieldB" id="field5" name="field5" value="field5value">
<input class="fieldB" id="field6" name="field6" value="field6value">
<input type="button" onClick="ViewAllElements();" value="View">
</form>
</body>
</html>
函数视图(){
var fe=document.forms['myForm'].elements;
警报(fe.长度);
对于(变量i=0;i
您能否在上设置工作/非工作示例?所有元素都有唯一的id属性吗?请更具体地说明哪些元素不起作用。它是如何失败的?您在控制台中看到错误了吗?getElementsByClassName
是否这样工作?是否应该使用document.getElementsByClassName(“默认值”)
?这不会过滤输入元素,所以一定要检查您是否只在输入上使用该类。我的意思是,当我单击某些输入时,它们的默认值消失,但其他一些元素仍然有它们的默认值。。它们都具有相同的类,只有一个类具有唯一的id