我正在后面的代码中创建一个文本框:
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';
,但文本框没有更新。
答案 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模式添加为静态即可。