标签文本更改事件

本文关键字:事件 文本 标签 | 更新日期: 2023-09-27 18:07:49

在我的页面中,如果一个标签的文本已经改变,我需要使用JQuery触发一些函数,因为.Change()仅限于<input> and <select>,我使用一个函数,如

$("#ctl00_ContentPlaceHolder1_lblMsg").on('labelchanged', function () {
       alert('changed!');          
    }
    });
$("#ctl00_ContentPlaceHolder1_lblMsg").trigger('labelchanged')

但是当标签的文本被改变时,上面的函数不会被触发,任何人都可以告诉我,我在上面的函数

中缺失了什么

Edit:标签的文本将在运行时被更改,只有当一些消息发生或抛出一些异常时,它被用来显示该异常

我的aspx代码,标签文本将被更改

protected void btnSubmit_Click(object sender, EventArgs e)
{
     try
     {
       //submit code//
     }
     catch(Exception ex)
     {
       lblMsg.Text=ex.Message();
     }
}

标签文本更改事件

$("#ctl00_ContentPlaceHolder1_lblMsg").on('labelchanged', function () {
       alert('changed!');          
});
$("#btn_change").on('click', function(){
        $("#ctl00_ContentPlaceHolder1_lblMsg").html('New Label Text').trigger('labelchanged');
    });
$(window).on('keypress', function(event){
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13')
        $("#btn_change").trigger('click');
});
演示小提琴

在stackoverflow上有几个类似的问题/答案。

我不认为你可以像那样在jquery中触发任何用户定义的事件。解决方法是使用这样的承诺:

$("#ctl00_ContentPlaceHolder1_lblMsg").html("Duplicate record can't be saved.").promise().done(function(){
    alert('changed!');  
});