【问题标题】:getElementById().value returns nothinggetElementById().value 不返回任何内容
【发布时间】:2010-01-23 23:48:07
【问题描述】:
<td id="'.$row['id'].'"style="display: none;">
    <input id="addEdit" type="text" value="" size="4"/>
</td>
<td>
    <input name="add" value="A" type="submit" onClick="addObs('.$row['id'].'); return false;"/>
</td>

.

function addObs(id)
{
    var addEditTD = document.getElementById(id);

    if (addEditTD != null && addEditTD.style.display == 'none')
    {
        addEditTD.style.display = '';
    }

    if (addEditTD.style.display == '' && document.getElementById('addEdit').value != "")
    {
        //some code
        alert(document.getElementById('addEdit').value);
    }
}

我没有从“addEdit”输入文本中收到任何值,我不知道为什么,请帮助。

这是与我的 html 标签相关的“源”行:

<td id="30129"style="display: none;">
<input id="addEdit" type="text" value="" size="4"/></td>
<td>
<input name="add" value="A" type="submit" onClick="addObs(30129); return false;"/>
</td>

【问题讨论】:

    标签: php javascript html


    【解决方案1】:

    啊。您使用纯数字作为元素 ID,这是不可能的。 在前面添加一些内容,例如“row_30129”(当然,添加到 ID 本身和函数调用中)。另外,在addObs() 调用中添加引号:

    addObs('row_30129');

    应该可以的。

    【讨论】:

    • 我已经编辑了主帖,我不t know why I couldnt在这里添加html。关于 row[i] 行,我认为这样可以,因为 id 是正确传递给 JS 函数的
    • 我 dont understand what that has to do with the thing that I dont 通过 document.getElementById('addEdit') 接收值
    • 每行有一个 addEdit 吗?那行不通,ID必须是唯一的。最好使用addEdit_row_30129 之类的 ID
    • 我听从了你的建议,我的问题已经解决了,谢谢德国人
    【解决方案2】:

    我刚刚通过http://www.jslint.com 运行了你的javascript -

    错误: 第 5 行字符 19 处的问题:使用 '!==' 与 'null' 进行比较。

    if (addEditTD != null && addEditTD.style.display == 'none')

    隐含全局:文档 3,10,13,警报 13

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 2019-04-06
      • 2012-02-15
      • 2020-09-07
      • 2021-11-22
      • 2015-11-06
      相关资源
      最近更新 更多