2010-01-23 60 views
2
<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> 

getElementById()。value returns nothing

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> 

回答

1

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

addObs('row_30129');

,应该工作。

+0

我已经编辑主哨,我不'吨知道为什么我在这里couldn't添加HTML。 关于行[i]行,我认为这样可以,因为id正确地传递给JS函数 – Claudiu 2010-01-24 00:08:01

+0

我编辑了答案。 – 2010-01-24 00:10:03

+0

我不明白与通过document.getElementById('addEdit')无法获得价值的东西有关的事情 – Claudiu 2010-01-24 00:15:47

1

我只是通过http://www.jslint.com跑到你的JavaScript -

Error: Problem at line 5 character 19: Use '!==' to compare with 'null'.

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

Implied global: document 3,10,13, alert 13

+0

我已经修改了,谢谢你的jslint.com网站;) – Claudiu 2010-01-24 00:08:53