无法读取Null的属性值 - Javascript

时间:2013-03-05 19:28:38

标签: javascript dynamic

每个人下午好 - 我有一个(可能)简单化的问题,在搜索得相当彻底之后我似乎无法找到答案。我在chrome中遇到的错误是“Uncaught TypeError:无法读取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调用中应用)。对不起,我是新手,但感谢大家的帮助。

1 个答案:

答案 0 :(得分:2)

我看到两个错误:

  1. 尝试为元素使用无效ID。有关ID命名规则,请参阅What are valid values for the id attribute in HTML?

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

  3. 我建议删除内联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...
    });