我正在从database.i填充国家/地区下拉列表。需要从下拉列表中选择一个值,并使用javascript将其分配给文本框。
代码:
var textboxId = document.getElementById("txtCountry");
var dropdownListId =document.getElementById("ddlLocation");
var e = document.getElementById("ddlLocation");
var strUser = e.options[e.selectedIndex].value;
document.getElementById(textboxId).value = strUser;
document.getElementById(textboxId).focus();
通过这样做我得到错误。任何解决方案?
此致 拉维
答案 0 :(得分:8)
您的代码错误,请查看我对相同代码所做的更改:
var textboxId = document.getElementById("txtCountry");
var e = document.getElementById("ddlLocation");
var strUser = e.options[e.selectedIndex].value;
textboxId.value = strUser;
textboxId.focus();
你做了什么,是你选择了你的文本框,JS是否返回了该文本框的DOM元素,你想通过在DOM
函数中传递textBox的getElementById()
来填充它。
这是它破裂的地方:
document.getElementById(textboxId).value = strUser;
要使用getElementById()
方法,请传递元素id的字符串值。
希望这有帮助。
答案 1 :(得分:2)
尝试:
document.getElementById('<%=txtCountry.ClientID%>').value
或
var textBox = document.getElementById('<%=txtCountry.ClientID%>');
textBox.value = strUser;
这是因为生成的文档中的html元素的id与您在代码中分配的id不匹配。要在html中获取分配给控件的ID,可以使用下拉列表的ClientID属性。
另一个问题是你将yourhtml元素分配给变量然后使用无效调用的getElementById函数。
在即将发布的ASP.NET 4中进行了更改。
希望有所帮助!
答案 2 :(得分:0)
这两行:
document.getElementById(textboxId).value = strUser;
document.getElementById(textboxId).focus();
也错了。如果您之前的行实际工作:
var textboxId = document.getElementById("txtCountry");
那么你所谓的 textboxId 实际上就是文本框控件,所以你将使用控件而不是字符串标识符来执行 getElementById 。
跟进 @anthares 所说的内容;试试这个:
var textboxId = '<%=txtCountry.ClientID%>';
alert('My textbox id is: ' + textboxId);
并确保您获得了正确的文本框ID(请记住它将由ASP.Net提供,至少确保您没有得到任何结果)。然后当你执行 document.getElementById 时,你需要在使用之前检查结果:
var myTextBox = document.getElementById(textboxId);
if (myTextBox !== null) {
...now i can access the properties...
}
答案 3 :(得分:0)
如果你不想使用
wx-config --libs
试试看:
document.getElementById()