2011-03-10 80 views
0

我有asp.net应用程序,页面上有asp.net向导控件。此向导控件具有文本框控件。我想在javascript中访问这个文本框的值。 这里,我试图访问这个这个文本框控件:如何在javascript中找到控件里面的向导控件

var originalPrice2 = document.getElementById('<%= mytextbox.ClientID %>').value; 
or 
var originalPrice2 = document.getElementById('mytextbox').value; 

but not getting any value . 

那里我开始萤火我发现引擎动态分配的ID,以TextBox控件为"ctl00_ContentPlaceHolder1_Wizard1_mytextbox" ,当我试图让使用文本框的值这个生成的ID。

var originalPrice2 = document.getElementById('<%= ctl00_ContentPlaceHolder1_Wizard1_mytextbox.ClientID %>').value; 

,但得到的异常:

The name 'ctl00_ContentPlaceHolder1_Wizard1_mytextbox' does not exist in the current context 

为什么要这样?我的html和我解释的完全一样。

回答

0

尝试使用jQuery:

alert($("input:text[id$='mytextbox']").val()); 

OR

var originalPrice2 = document.getElementById('ctl00_ContentPlaceHolder1_Wizard1_mytextbox').value; 
+0

肯定吗?所有浏览器的第二个选项将保持不变?我的意思是它不应该随着浏览器的变化而动态生成不同的id,而是会使应用程序崩溃。 – 2011-03-10 08:17:08

+0

“浏览器变化时动态地使用不同的id”意味着什么?你没有发现文本框控制? – Sukhjeevan 2011-03-10 08:24:51

+0

告诉我谁在这里生成动态ID为“ctl00_ContentPlaceHolder1_Wizard1_mytextbox”?如果它没有生成浏览器,那么它是安全的,但是如果在浏览器干扰生成的代码时生成HTML,并且如果应用程序在不同的浏览器中运行,则可能出现为相同的控件生成不同动态ID的机会。得到我想解释的内容? – 2011-03-10 11:18:56