如何使用 Javascript 从 asp.net 中的下拉列表中获取选定的值?
我正在从数据库填充国家/地区下拉列表。我需要从下拉列表中选择一个值并使用 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();
这样做我收到错误。有什么解决办法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你的代码是错误的,看看我对相同代码进行了更改:
你做了什么,你选择了文本框,JS 返回了该文本框的 DOM 元素,你想通过传递
getElementById()
函数内文本框的 >DOM。这里是它的问题所在:
要使用 getElementById() 方法,您需要传递元素 id 的字符串值。
希望这有帮助。
Your code is wrong, Look at where I've made the changes to the same code:
What you did, is you selected your textbox and JS returned you a DOM element of that text box and you wanted to populate it by passing the
DOM
of the textBox inside thegetElementById()
function.Here is where it broke:
To use
getElementById()
method, you pass a string value of the id of an element.Hope this helps.
尝试使用:
或
那是因为生成的文档中的 html 元素的 id 与您在代码中分配的 id 不匹配。要在 html 中获取分配给控件的 ID,您可以使用下拉列表的 ClientID 属性。
另一个问题是您将 html 元素分配给变量,然后使用 getElementById 函数,这是无效的调用。
这在即将发布的 ASP.NET 4 中发生了变化。
希望有帮助!
Try with:
or
That's because the ids of the html elements in the generated documents doesn't match with the id that you have assigned in your code. To get the id assigned to your control in the html, you can use the ClientID property of your dropdown.
Another problem is that you assign yourhtml element to variable and then use getElementById function which is not valid call.
This is changed in ASP.NET 4, that is about to be released.
Hope that helps!
这两行:
也是错误的。如果您的上一行确实有效:
那么您所调用的 textboxId 实际上将是文本框控件,因此您将使用该控件而不是字符串标识符来执行 getElementById 。
遵循@anthares所说的;试试这个:
并确保您获得了文本框的正确 ID(请记住,它将被 ASP.Net 修改,至少确保您没有得到任何结果)。然后,当您执行 document.getElementById 时,您需要在使用之前检查结果:
These two lines:
are wrong too. If your previous line actually worked:
then what you have called textboxId will actually be the textbox control, so you will be doing a getElementById using the control instead of a string identifier.
To follow upon what @anthares said; try this:
and make sure that you are getting the correct ID for the textbox (remember that it will be munged by ASP.Net, at least make sure you are not getting nothing). Then when you do a document.getElementById you need to check the result before using:
如果您不想使用,
请尝试:
If you don't want to use
try it: