1

大家下午好 - 我有一个(可能)简单的问题,经过相当彻底的搜索后,我似乎无法找到答案。我在 chrome 中遇到的错误是“Uncaught TypeError: Cannot read property 'value' of null”。在第 120 行(复制如下):

mercedes_txt = mercedes_txt + "<tr><td><button id=\"Mercedes Add Value\"
    onclick=\"addAttribute('Merceds-Benz', " + mercedes_counter + ", '" +
    document.getElementById('Mercedes-Benz Text').value + "')\">Add</button></td><td>
    <input type=\"text\" name=\"Mercedes-Benz Text\" id=\"Mercedes-Benz Text\" />
    </td></tr></table>";

为了便于阅读,我尝试将代码分成多行。如果我取出“onclick”,代码将正确执行。另外,如果我更换

'" + document.getElementById ('Mercedes-Benz Text').value + "'

使用“someValue”,代码可以正确执行。所以问题一定是我从一个动态创建的对象中请求值(它还不存在,但一旦代码应用到 innerHTML 调用中就会存在)。对不起,我是新手,但我感谢大家的帮助。

4

1 回答 1

2

我看到两个错误:

  1. 尝试为您的元素使用无效的 id。请参阅HTML 中 id 属性的有效值是什么?对于 id 命名规则。

  2. 您正在尝试获取尚未添加到 DOM 的元素的值。

我建议摆脱那个内联onclick处理程序,并通过代码添加。像这样的东西:

var addValueButton = document.getElementById('MercedesAddValue');
addValueButton.addEventListener('click', function(e) {
   // get live form values here by traversing the DOM
   // you may want to use jQuery...
});
于 2013-03-05T19:33:01.380 回答