如何使用Javascript获取ASP.NEt Web窗体标签的值?

时间:2011-09-15 13:13:50

标签: javascript asp.net label

我有以下标签控件:

<asp:Label ForeColor="DarkGreen" runat="server" ID="lblStatus"></asp:Label>

其值填入 Page_Load 事件。

我附上了以下Javascript(放置在页面末尾,而不是母版页面):

function Validate() {
        var lblObj = document.getElementById('<%=lblStatus.ClientID%>');
        alert(lblObj.value);
        if (lblObj.value == "Replaced" || lblObj.value == 'Trashed' || lblObj.value == "Internal Use") {

            alert("Products with" + lblObj.value + "status cannot be reserved");
            return false;
        }
    }

警告(lblObj.value)会显示一个文本为“未定义”的弹出窗口。我该如何解决这个问题?拜托,我尝试了许多组合来放置JavaScript,但没有运气!感谢

更新

浏览器感知代码:

<span id="ctl00__main_lblStatus" style="color:DarkGreen;">Available</span></td>

验证JS函数的第一行:

function Validate() {
        var lblObj = document.getElementById('ctl00__main_lblStatus');

6 个答案:

答案 0 :(得分:5)

label没有value。他们有innerHTMLinnerText

答案 1 :(得分:4)

标签服务器控件呈现为span。所以你应该通过innerText得到它的内容。试试这个:

alert(lblObj.innerText);

答案 2 :(得分:4)

使用JQuery,它将在所有浏览器和平台上运行,例如:

$('#<%= lblStatus.ClientID %>').next().text();

来源:JQuery: getting the value/text/innerHtml of a checkbox in an ASP.NET CheckBoxList control

答案 3 :(得分:2)

ASP.NET标签服务器控件将在复杂的HTML输出中呈现。 像:

<span id="ctl00_ctl00_ContentPlaceHolder1_BodyPlaceHolder_lblLanguage0">
 <label class="inputText">English</label>
</span>

当你使用getElementById时,你将获得跨度。 但要通过javascript设置值,您必须访问内部标签对象

答案 4 :(得分:1)

试试这个

<script language="javascript" type="text/javascript">
function getlabelvalue()
{
   var value1 = document.getElementById('<%=labelID.ClientID%>').value;
            if (value1.length < 1)
                value1 = 0;
}    
 </script>

答案 5 :(得分:1)

使用jquery,您需要使用html方法。

UPDATE mysql.user
  SET authentication_string =PASSWORD('MyNewPass')
  WHERE User='root';
FLUSH PRIVILEGES;

这些不适用于jquery:

  • $('#&lt;%= lblStatus.ClientID%&gt;')。innerText
  • $( '#&LT;%= lblStatus.ClientID%GT;')的innerHTML
  • $( '#&LT;%= lblStatus.ClientID%GT;')VAL()