生成并显示密码

时间:2014-02-21 07:10:26

标签: javascript html passwords

我有一个带有html表的表单。 我的表是:

<table>
<tr>
  <td>
    <input type="text" name="password[]"/>
  </td>
  <td>
    <input type="radio" value="1" onchange="generatePassword()"/>Short<br />
    <input type="radio" value="2" onchange="generatePassword()"/>Medium<br />
    <input type="radio" value="3" onchange="generatePassword()" />Long
</td>
<tr>
</table>

在我的代码中,底部有一个按钮,当单击它时,它会克隆表格行。所以,我不知道我的表中的行数或密码字段数。因为克隆行,我无法给我的密码字段id。所以,我无法决定如何到达没有id的文本框。但我需要在密码字段中显示我生成的密码。

3 个答案:

答案 0 :(得分:1)

使用.getElementsByName代替id:

document.getElementsByName('password[]')[0].value="anyvalue";

Fiddle1

使用.getElementsByTagName

document.getElementsByTagName('input')[0].value="anyvalue";

Fiddle2


New fiddle in response to comment

答案 1 :(得分:1)

你能做什么。你可以在generatePassword找到一个输入字段,如下所示:

function generatePassword(inp) {
    var textbox = inp.parentNode.parentNode.cells[0].getElementsByTagName('input')[0];
    textbox.value = 'password ' + inp.value;
}

您还可以稍微更改标记。将name属性添加到单选按钮,并使用this引用当前输入:

<input type="radio" name="generate" onchange="generatePassword(this)" value="1" />

演示:http://jsfiddle.net/BHb3N/

答案 2 :(得分:1)

您可以使用Classes而不是ID。

HTML

<input type="text" class="myPassword" value="test" name="password[]" />
<input type="text" class="myPassword" value="test" name="password[]" />
<input type="text" class="myPassword" value="test" name="password[]" />

JS

var passwords = document.getElementsByClassName('myPassword') || document.querySelectorAll('myPassword'); //querySelectorAll for IE <= 8

 for (var i = 0; i < passwords.length; i++) {
    console.log(passwords[i].value);
 }