Meiomask - 无法将setMask应用于ASP中的控件

时间:2014-01-30 16:58:16

标签: javascript jquery asp.net meiomask

我正在尝试使用this jQuery mask input plugin来强制用户输入字母数字值,句号和空格。

我正在尝试使用下面的语句允许使用字母数字(10个字节)。

$('#CommentsTextBox').setMask({ mask: '****' });

但是,它不允许任何用户输入。我正在将输入掩码应用到我页面上的其他控件上。

如果我注释掉这个陈述,那么我可以输入值。

以下是.aspx

中控件的代码
<asp:PlaceHolder ID="CommentsPlaceHolder" runat="server">
    <asp:TextBox ID="CommentsTextBox" CssClass="longTextBox" runat="server" MaxLength="150" TextMode="MultiLine" Rows="4" ClientIDMode="Static" />
</asp:PlaceHolder>    

1 个答案:

答案 0 :(得分:1)

Here is a fiddle演示用法,我添加了textarea,因为这是您的控件将呈现为。

它不适合您的原因是因为您使用了错误的ID。

ASP中有3种不同类型的ID。 (you can find more info here)

  
      
  1. ID - 这是您在标记中指定的ID,或者通过设置控件的ID属性。
  2.   
  3. UniqueID - 这是由ASP.NET生成的ID,供服务器上运行的代码使用。
  4.   
  5. ClientID - 这是由ASP.NET生成以供客户端代码使用的ID(它在HTML中呈现为id属性的值)。
  6.   

注意#3,这是您需要使用的属性才能访问渲染控件的ID。

在您的情况下,textbox的呈现ID可能看起来像这样..

<textarea ID='CommentsPlaceHolder?CommentsTextBox' />

这不适合您的原因是因为您没有ID为CommentsTextBox的控件

通常的做法是做这样的事情......

var Members =
{
    CommentsTextBox: $("#<%=CommentsTextBox.ClientID %>"),
    StartDateCalendarText: $('#<%=StartDateCalendarText.ClientID %>') 
}

$(document).ready(function()
{
    Members.CommentsTextBox.setMask({ 'mask': '**********' });
    Members.StartDateCalendarText.setMask({ 'mask': '99/99/9999' });
});