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

将javascript值插入到.net文本框时,document.getElementsByName(…)[0]未定义,javascript,jquery,asp.net,.net,Javascript,Jquery,Asp.net,.net,我想将JavaScript变量中的值插入textbox值。在JavaScript中,变量数据非常好,但是当我使用JavaScript将变量数据存储在.net文本框中时,这种类型的错误就出现了 这是我的密码 <form> <asp:TextBox name="password" ID="txt_pass" runat="server"></asp:TextBox> <asp:Button ID="btn_captcha" runat="server"

我想将JavaScript变量中的值插入textbox值。在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>

$(函数(){
$(文档)。在(“单击”上,“btn_验证码”,函数(e){
变量长度=5,
charset=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyzo123456789”,
retVal=“”;
对于(变量i=0,n=charset.length;i
您可以使用Id而不是名称

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

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

将此问题标记为.net问题,因为它不仅仅是javascript问题question@Zuks您也可以添加这些标记。即使mods必须接受这些edits@Sagar添加他们如何看到我无法编辑文章?检查网页源,因为它显示在浏览器中-ASP控件上的“名称”属性对浏览器的最终HTML没有任何意义gets@Zuks奇怪的我能做到。你的名声比我大。您可以进行的编辑数量是否有限制?除了ASP(通常)mangles ID之外-除非该文本框也
ClientMode=“Static”
修改了上述代码,因为它是在服务器上运行的,所以我们可以使用@jaromandaxies,这是另一种方法-第三种(可能不是很安全)方法是
document.querySelector('[id$=\u txt\u pass]')。value=retVal;
我们也可以使用queryselector。这也很有效,请按照您所说的编辑上面的代码。
document.querySelector('[id$=_txt_pass]').value = retVal;