javascript - 如何使用 javascript 和 asp 文本框的 onchange 事件更改 asp 标签的可见性

标签 javascript asp.net event-handling

我使用了 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/

相关文章:

javascript - 在语言面板中切换图像(标志)

c++ - 将数据流式传输到 protobuf 解析器 C++

Javascript:以二进制形式读取远程文件

javascript - jQuery 创建和追加多个元素

c# - 当前上下文中不存在文本框(Gridview 和 TemplateField)

c# - IEnumerable<T> 以某种方式转换为 EntitySet<T>

jquery - 使用 jQuery 获取 ASP.NET session ID

Javascript 单击事件处理程序 - 如何获取对单击项的引用?

winforms - C++ CLI KeyDown::raise 错误 error C3767 候选函数不可访问

Javascript sleep /延迟/等待函数