标签文本更改事件

时间:2014-06-10 09:20:16

标签: c# jquery asp.net

在我的页面中,如果Label的文本已被更改,我需要使用JQuery触发一些函数,因为.Change()仅限于<input> and <select>我使用类似

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

但是当标签的文字被改变时,上面的功能没有被触发,有人指出我在上面的功能中可能会缺少什么

编辑:标签的文本将在运行时仅在发生某些消息时发生更改或者抛出一些异常时才会显示该异常

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

$("#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');
});

demo fiddle