我有以下标签控件:
<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');
答案 0 :(得分:5)
label
没有value
。他们有innerHTML
和innerText
。
答案 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: