javascript - 使用 Javascript 将文本字段添加到 HTML 表单时出错

标签 javascript php html function uitextfield

我正在构建一个移动网络服务,允许员工在手机上输入工作时间。我创建了一个由 php 循环函数构造的表单,该函数循环一周中所有日期的数组。效果非常好,表单如下所示:

enter image description here

现在,如您所见,每天都有一个 + 按钮。我想让用户可以通过点击此按钮来添加文本字段。然后,他们可以在每个文本字段中添加工作时完成的任务的描述。

这是我想使用的代码:

<input id="<? echo $i;?>" type="button" class="plusButton" onclick="addField(<?echo $i; ?>);"/>

        <script type="text/javascript">
            function addField(p) {


                var newField = document.createElement("input");
                newField.type = 'text';
                newField.width = '50px';
                newField.height = '20px';

                var weekDays = new Array();

                <?

                for($q = 0; $q < count($weekDays); $q++) { ?>
                    weekDays.push(<? echo $weekDays[$q]; ?>);
                <? } ?>

                document.getElementById(weekDays[p]).innerHTML.appendChild(newField);
                alert(weekDays[p]);
            }
        </script>

不是说 $weekDays 是一个 PHP 数组,包含周一到周日(荷兰语)。

问题: 由于某种原因,我不断收到此错误:

TypeError: 'null' is not an object (evaluating 'document.getElementById(weekDays[p]).innerHTML')

我不知道我做错了什么,我在互联网上尝试并查找了一天多来解决这个问题。任何解决此问题的帮助将不胜感激!!

最佳答案

您可能想要替换:

document.getElementById(weekDays[p]).innerHTML.appendChild(newField);

与:

document.getElementById(weekDays[p]).appendChild(newField);

Element.innerHTML 返回一个字符串。您无法对字符串调用 appendChild

关于javascript - 使用 Javascript 将文本字段添加到 HTML 表单时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24530230/

相关文章:

javascript - fillRect 导致整个屏幕改变颜色

javascript - (Javascript) 如何使用 iframe 强制下载图像?

php - Codeigniter 表单验证多个回调

php - 输入网站 URL 后,.htaccess 必须立即转到正确的文件和路径

multithreading - 使用PHP CLI SAPI的基于PHP的服务器

javascript - 最小宽度、水平行、百分比宽度优先级

javascript - 如何在javascript提示框中输入密码

javascript - 如何通过唯一标识符来识别选项卡?

javascript - 如何从 Javascript 对象访问属性?

javascript - 在具有两个单独的 react native 文件的屏幕之间导航