我有一个表,其中行是动态的,值来自数据库。
例如我的表格如下: -
name|email
xyz|xyz@gmail.com
pqr|pqr@gmail.com
我保留了名称作为点击的链接,下面打开一个表格,其中包含与表格相同的字段,即
名:---- 电子邮件:----
所以现在我想要的是打开表单我还希望表单应该预先填充表格中的值..
例如: - 如果用户点击pqr,那么表单应该获得带有值的opend ..
name : pqr
email : pqr@gmail.com
我创建了一个javascript函数,其中我传递了用户点击的用户名的用户ID ..在我的函数中,我执行了以下操作:
var id=userid;
var row = document.getElementById(id);
var inputs = row.getElementsByTagName("td");
document.getElementById("fname").value = inputs[0].innerHTML;
document.getElementById("email").value = inputs[1].innerHTML;
正如我正在使用
inputs[0].innerHTML;
它打印出如下名称:
<font size="4"><a href="#" id="viewUser" onclick="populate('73');">xyz</a></font>
但我只想在我的文本框中使用'xyz'...当我这样做时:
inputs[0].value;
它给了我未定义的价值......为什么会这样?
请有人指导我们在表格中填写行的值。
答案 0 :(得分:0)
我在这里做了一些假设。查看有关工作代码的小提琴:http://jsfiddle.net/G6Q5X/
这是一张基本表格。
<table id="list">
<tr>
<td><a href="#">Name 1</a></td>
<td>Email 1</td>
</tr>
<tr>
<td><a href="#">Name 2</a></td>
<td>Email 2</td>
</tr>
</table>
首先,您希望按ID获取表并获取其包含的行:
//nodeList of all rows in the table
var table = document.getElementById('list').children[0].children;
然后为每个链接添加一个事件监听器:
for(var i=0, len=table.length; i<len; i++){
var link = table[i].children[0].children[0];
link.addEventListener('click', getInfo);
}
事件监听器的回调将调用一个函数,我使用了一个名为“getInfo”的函数:
var getInfo = function(){
var name = this.innerHTML;
var email = this.parentNode.parentNode.children[1].innerHTML;
alert('Your name is: ' + name + ' and email is: ' + email)
}
我希望这会有所帮助。