Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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更新动态创建的HTML元素的属性_Javascript - Fatal编程技术网

使用Javascript更新动态创建的HTML元素的属性

使用Javascript更新动态创建的HTML元素的属性,javascript,Javascript,我有一个HTML表单,带有一个Select和7个PHP动态创建的输入框。默认情况下,这些框处于禁用状态,我的计划是通过更改Select的值来启用它们 为此,我构建了一个Javascript函数,但当我尝试更改Select时,出现了一个错误(UncaughtTypeError:cannotreadproperty'removeAttribute'为null),结果导致InputBox无法启用 提前感谢您帮助我解决此问题 HTML/PHP代码摘录: <table> <td>

我有一个HTML表单,带有一个Select和7个PHP动态创建的输入框。默认情况下,这些框处于禁用状态,我的计划是通过更改Select的值来启用它们

为此,我构建了一个Javascript函数,但当我尝试更改Select时,出现了一个错误(UncaughtTypeError:cannotreadproperty'removeAttribute'为null),结果导致InputBox无法启用

提前感谢您帮助我解决此问题

HTML/PHP代码摘录:

<table>
<td>
<select name="activity1" id="activity1" disabled onchange="enableInputs()">
   <option value="1">Value 1</option>
   <option value="2">Value 2</option>
   <option value="3">Value 3</option>                   
</select>   
</td>

<?php
    $WeekDays = array("monday1","tuesday1","wednesday1","thursday1", 
                      "friday1", "saturday1", "sunday1");

    for($i=0;$i<=6;$i++) 
    {
        echo
            '<td>'.
                '<input value="0" type="text" name="'.$WeekDays[$i].
                        '" id="'.$WeekDays[$i].
                        '" size="5" maxlength="5" disabled ;">'.
            '</td>';
    }
?>
</table>

值1
价值2
价值3
Javascript:

function enableInputs()
{
  var rCnt = 1;
  var DaysOfWeek = new 
     Array("monday","tuesday","wednesday","thursday", "friday", "saturday", 
     "sunday"); 
  for (x=1;x<=rCnt;x++)
  {
    for (i=0;i<=6;i++)
    {
      document.getElementById(DaysOfWeek[i]+x).removeAttribute("disabled");
    }       
  }
}
功能启用输入()
{
var-rCnt=1;
var DaysOfWeek=新
数组(“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”,
“星期日”);

对于(x=1;x,在PHP代码中,您给出了
name
属性

<input name="'.$WeekDays[$i].'">
这将得到空字符串

解决方案: 将html更改为:

<input id="'.$WeekDays[$i].'">


或者使用
document.getElementsByName(DaysOfWeek)
获取节点列表。

错误消息非常清楚,您正在访问一个不存在的对象。可能是DaysOfWeek变量的索引错误,或者元素ID不存在。由您进行一些调试(console.log或alert)谢谢Pierre。元素ID不存在。我已经在我的帖子中添加了它,经过重新测试,但仍然没有乐趣。您可能是指“要么将html更改为:”而不是“name=XYZ”感谢您发现了这一点。我在PHP脚本中添加了缺少的id属性,但仍然得到相同的错误。查看页面上的源代码可以确认该id的元素存在。我感到困惑。那么您的
DaysOfWeek[I]可能会+x
没有生成有效的字符串。最好也共享这部分代码。最终它现在可以正常工作了。拼图的最后一部分缺少了双引号!感谢大家的帮助。
<input id="'.$WeekDays[$i].'">