如何在javascript中设置后面代码中创建的文本框的值

时间:2017-11-14 11:16:56

标签: javascript c# jquery asp.net textbox

我正在后面的代码中创建一个文本框:

TextBox txt = new TextBox();
txt.ID = "txtRef" + count + dr["DataField"].ToString();
div.Controls.Add(txt);

我正在尝试在jquery函数中设置此文本框的值,但到目前为止我没有尝试过更新文本框。

使用document.getElementById('txtRef1j.3rdPartRef').value = 'test';返回错误无法将属性'value'设置为null。

我还尝试了$('#txtRef1j.3rdPartRef').val('test')$('[id$="txtRef1j.3rdPartRef"]').value = 'test';,但文本框没有更新。

3 个答案:

答案 0 :(得分:1)

试一试:$('[id$="txtRef1j.3rdPartRef"]')[0].value = 'test';document.getElementById('txtRef1j.3rdPartRef')[0].value = 'test';$('[id$="txtRef1j.3rdPartRef"]').get(0).value = 'test';

    document.querySelector('[id$="txtRef1j.3rdPartRef').value = 'test'

$('[id$="txtRef1j.3rdPartRef"]').val('test');`

您有错误,因为jquery对象没有属性value,只有Dom元素具有proerty value。当您使用document.getElementById时,您将获得NodeList,它不是Dom-Element。您可以阅读:https://developer.mozilla.org/en-US/docs/Web/API/NodeList

答案 1 :(得分:0)

你可以试试这个。

$('#txtRef1j.3rdPartRef&#39)的文本。('测试&#39)

答案 2 :(得分:0)

检查您在HTML DOM中设置的文本框名称是否相同。右键单击文本框,然后通过inspect元素查看ID。如果它与您在c#中构建的不同,则添加一行代码txt.ClientIDMode = ClientIDMode.Static;该ID与生成动态文本框ID的ID不同。

如果ID相同但仍然无效,则在浏览器控制台中运行给定的jquery和javascript语句并尝试它们是否正常工作。

F12,转到控制台,粘贴$("#ctl00_ContentPlaceHolder1_txtRef1j.3rdPartRef").val('test');并按Enter键。如果该值已设置,那么因为动态ID。只需将客户端ID模式添加为静态即可。