如何使用javascript定位动态生成的文本框

时间:2013-07-05 14:51:12

标签: c# javascript asp.net

我有TextBox动态生成GridView。当您检查页面时,TextBox如下所示。我正在尝试找到一种方法来定位此TextBox以及此TextBoxes中的所有其他GridView,以便我可以针对它们运行脚本。我找到一种能够定位此文本框的方法很困难。我尝试将样式类设置为GridView并调用它,但它似乎不起作用。

<input name="ctl00$MainContent$controlProductsList1$gvItems$ctl04$Option-30482_e0edc10a-7dba-40d0-a4f1-7c4c5801c0ca" type="text" id="MainContent_controlProductsList1_gvItems_Option-30482_e0edc10a-7dba-40d0-a4f1-7c4c5801c0ca_2">

使用javascript定位在GridView中动态生成的TextBox的最佳方法是什么?

你能给gridview一个类并单独调用那个类吗?

这是需要定位输入的脚本

$('#inputID').keyup(function(){
    this.value = this.value.toUpperCase();
});

2 个答案:

答案 0 :(得分:1)

其中一个想法可能是在文本框上放置一个css类。如果它是由您的代码动态生成的 然后在jQuery中使用类选择器。

  $('.inputcss').keyup(function(){
               this.value = this.value.toUpperCase();
   });

甚至您可以使用gridview的id并在gridview中找到input:text并使用您的函数。以下是示例代码

 $('#<%=grid.ClientID%>')
 .find('tr')
 .each(function(row) {
      $(this).find('input')
            .each(function(col) {
                      $(this).keyup(function(){
               this.value = this.value.toUpperCase();
                  });

                  } 
             });
  });

}); 

编辑1

如果你只想以大写字母显示,你可以使用css如下

 h1 {text-transform:uppercase;}

更多详情

http://www.w3schools.com/cssref/pr_text_text-transform.asp

答案 1 :(得分:1)

由于您似乎在使用jQuery,请在JQuery selector页面上查看您的选项。一种选择是使用通用input selector,如:

$("#<%=gvItems.ClientID%> :input").keyup(function(){
      this.value = this.value.toUpperCase();
});

上面的代码假定您的控件名为gvItems,并将呈现网格视图的客户端ID,以便在JQuery ID选择器中使用(#MainContent_controlProductsList1_gvItems ...)并查找所有输入子元素(:input)。

另一个选择是将一个类直接放在输入控件上:

$(".inputClass").keyup(function(){
    this.value = this.value.toUpperCase();
});