我使用了 css 将标签的显示设置为无 我对 js 很陌生,所以我对我的代码不是 100% 熟悉..
<script type="text/javascript">
function strLen(field, count)
{
var str = document.getElementById("textbox1");
if(str.value.length > 2)
{
document.getElementById("errorLabel").style.display = 'inherit';
}
}
</script>
<asp:textbox id="textbox1" CssClass="style5" runat="server" MaxLength="10" onchange="strLen()"></asp:textbox>
最佳答案
您的 JS 函数中有参数,但您没有在 onchange 事件中传递任何参数。
将以下代码应用到您的文本框:
<asp:TextBox ID="textbox1" CssClass="style5" runat="server" MaxLength="10" onkeyup="strLen(this, 2);"></asp:TextBox>
方法#1:使用标签
您的错误标签应如下所示:
<asp:Label ID="lblError" runat="server" Text="Exceeds max length" style="display:none;"></asp:Label>
然后在 JavaScript 函数中,您可以执行以下操作:
编辑:逻辑是否向后 - 更改为: input.value.length > count ? “ block ”:“无”;
strLen = function(input, count){
var errorLabel = document.getElementById("<%=lblError.ClientID%>");
if (errorLabel)
errorLabel.style.display = input.value.length > count ? "block" : "none";
}
方法#2:使用跨度而不是标签
或者您可以只使用跨度而不是标签,如下所示:
<span id="errorLabel" style="display:none;">Exceeds max length</span>
并将 JavaScript 函数更改为:
编辑:逻辑是否向后 - 更改为: input.value.length > count ? “ block ”:“无”;
strLen = function(input, count){
var errorLabel = document.getElementById("errorLabel");
if (errorLabel)
errorLabel.style.display = input.value.length > count ? "block" : "none";
}
关于javascript - 如何使用 javascript 和 asp 文本框的 onchange 事件更改 asp 标签的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124375/