如何使用javascript从asp.net的dropdownlist中获取选定的值?

时间:2010-03-09 11:59:51

标签: c# asp.net javascript javascript-events dhtml

我正在从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(); 

通过这样做我得到错误。任何解决方案?

此致 拉维

4 个答案:

答案 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()