当javascript值插入.net文本框时,document.getElementsByName(...)[0]未定义

时间:2017-06-28 06:14:53

标签: javascript jquery asp.net .net

我想将JavaScript变量中的值插入到文本框值中。在JavaScript中,变量数据非常好,但是当我使用JavaScript存储在.net文本框中的变量数据时,这种类型的错误就会出现。

这是我的代码

<form>

<asp:TextBox name="password" ID="txt_pass" runat="server"></asp:TextBox>

<asp:Button ID="btn_captcha" runat="server" Text="Gen. Pass." OnClientClick="return false;" ClientIDMode="Static"/>

<script>
    $(function () {
        $(document).on("click", "#btn_captcha", function (e) {
            var length = 5,
        charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
        retVal = "";
            for (var i = 0, n = charset.length; i < length; ++i) {
                retVal += charset.charAt(Math.floor(Math.random() * n));
            }
            alert(retVal);
            document.getElementsByName('password')[0].value = retVal;
        });
    });
    </script>

</form>

2 个答案:

答案 0 :(得分:1)

您可以使用Id代替名称

document.getElementById('<%= txt_pass.ClientID %>').value = retVal;

document.querySelector('[id$=_txt_pass]').value = retVal;

答案 1 :(得分:0)

我认为您的问题是您要查找的文本框名称和ID不是静态的,这就是为什么javascript无法找到该元素。按F12使用开发人员工具验证上述输入的名称和ID,然后使用静态输入。