我正在尝试生成一个随机密码(此代码运行完美),它将粘贴到密码文本框的值,但在调用javascript函数时遇到问题。
这是我的JavaScript:
function password() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 8;
var randomstring = '';
var table = document.getElementById('table'),
rows = table.getElementsByTagName('tr'),
i,j, cells, password;
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
for (i=0,j = rows.length; i<j;++i)
{
cells = rows[i].getElementsById('td');
if(!cells.length)
{continue;
}
password = cells[j].innerText;
alert("hi "+password);
}
alert("Password is : "+randomstring);
document.f2.password.value = randomstring;
}
这是我的表:
<table name="table" id="table" cellpadding="4" cellspacing="2" border="1" bgcolor="" >
<tr name="tr" id="tr">
<th><input type="checkbox" name="allCheck" onclick="selectallMe()"></th>
<th>Emp ID</th>
<th>Device</th>
<th>Feature Status</th>
<th>Policy</th>
<th>Password Management</th>
</tr>
<tr>
<% while(rs.next()){ %>
<td><input type="checkbox" name="chkName" onclick="selectall()"></td>
<td><input type="text" name="empId" value="<%= rs.getString(1)%> " disabled="disabled" maxlength="10"></td>
<td><input type="text" name="device" value="<%= rs.getString(2)%>" disabled="disabled" maxlength="10"></td>
<td><input type="text" name="features" value="<%= rs.getString(3)%>" disabled="disabled" maxlength="60"></td>
<td><input type="text" name="policyName" value="<%= rs.getString(4)%>" disabled="disabled" maxlength="10"></td>
<td id="td" name="td"><input type="text" name="password" id="password" value="" ><input type="button" name="Password" value="Password" onclick="password()"><input type="reset" name="Reset" value="Rseset"></td>
</tr>
<% }
%>
</table>
在我的JS中出了什么问题?由于我想迭代密码列,Password()
会将值分配给密码单元格。
答案 0 :(得分:0)
我宁愿把它放在评论中,但我还没有声誉。
首先,您是否有特定原因要求单元格为文本输入类型?因为您只是在创建时禁用它们。 还要查看行[index] .cells();和table.rows(); JS中的方法。这些将为您提供一组单元格和行。从那里你可以迭代到你想要的地方。 访问以了解更多http://www.javascriptkit.com/domref/tableproperties.shtml
希望有所帮助