Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么脚本没有在所有输入元素上运行?_Javascript_Html - Fatal编程技术网

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