Textbox onchange事件

时间:2012-06-27 15:32:44

标签: c# javascript

所以我有一个文本框,我在其中添加了markAsException的onchange事件。

我的javascript是 -

function markAsException(recordID) {
    //alert("Exception");

    //mark exception column
    document.getElementById("ctl00_cpMain_lblScrollException_" + recordID).innerText = "Exception";
    document.getElementById("ctl00_cpMain_lblScrollException_" + recordID).style.color = "#FF0000";
    document.getElementById("ctl00_cpMain_tdScrollException_" + recordID).style.backgroundColor = "#99CCFF";

    //enable comments ddl and remove blank (first item)
    document.getElementById("ctl00_cpMain_ddlCommentId_" + recordID).disabled = false;
    document.getElementById("ctl00_cpMain_ddlCommentId_" + recordID).focus();
    document.getElementById("ctl00_cpMain_ddlCommentId_" + recordID).options[0] = null;
}

我想要做的是,当用户更改文本框中的值时,将列标记为“异常”,然后将下拉列表集中在他们必须选择异常原因的位置。

这就是发生的事情..如果我在该文本框上并更改它,然后选项卡,它会标记到下拉列表。

但是,如果我更改了值,然后只需单击表单上的另一个文本框,我就不会关注下拉列表。

我将如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

我建议使用JQuery的change()函数。

优点是它可以在不同的浏览器中更稳定。

类似的东西:

    $('#<%= TextBox1.ClientID %>').change(function(){
      // extract the recordID from the textbox - perhaps with an attribute?
      markAsException(recordID);
    });

我的评论越来越长,所以我正在扩大:

在页面完成加载时,查看JQuery documentation以进行设置。如果tb是文本框的ID,则选择器将为

$('#<%= tb.ClientID %>')

我建议您更换代码并使用

tb.Attributes.Add("recordID", recordId.ToString());

这会将您需要的ID添加到文本框标记中。一旦你进入上面概述的功能,你可以使用以下选择器来获取javascript中的recordID

var recordID = $('#<%= TextBox1.ClientID %>').attr('recordID');

一起

  $(document.ready(function(){
    $('#<%= tb.ClientID %>').change(function(){
      var recordID = $('#<%= tb.ClientID %>').attr('recordID');
      if(recordID){
        markAsException(recordID);
      }
    });
  });