在AutoPostBack = true上触发jQuery代码?

我有一些jQuery代码,它将电话号码掩码应用于表单中的文本字段:

  $(document).ready(function () { $.mask.definitions['~'] = '[+-]'; $('.phone').mask('(999) 999-9999'); });  

当用户第一次进入表单或使用刷新页面时,它可以正常工作。 但是,有一个DropDownList,允许用户选择不同的送货地址。 此DropDownList将其AutoPostBack属性设置为“true”。

   Ship To:        

每当用户从此DropDownList中选择一个选项时,电话掩码jQuery代码就不再出现在电话号码文本框中。 当我在Google Chrome中检查页面时,我没有看到任何错误。

无论用户是否使用DropDownList,都可以维护电话掩码代码吗?

这是后面代码中的Page_Load函数:

  protected void Page_Load(object sender, EventArgs e) { // DETERMINE IF THE SHIPPING FORM MUST BE INITIALIZED bool initShipAddress; if (Page.IsPostBack) { // ON POSTBACK, WE ONLY INITIALIZE THE SHIPPING FORM IF THE ADDRESS SELECTION WAS CHANGED initShipAddress = (Request.Form["__EVENTTARGET"] == AddressBook.UniqueID); } else { // ON FIRST VISIT, WE INITIALIZE SHIPPING FORM IF THE SHIPPING ADDRESS IS NOT THE BILLING initShipAddress = (GetShippingAddressId() != _User.PrimaryAddress.Id); } if (initShipAddress) InitializeShippingAddress(); } 

我可能错了,因为我使用ASP.NET已经很长时间了,但我相信你可以简单地改变$(document).ready(function () { ... });$(window).load(function() { ... });

 $(window).load(function () { $.mask.definitions['~'] = '[+-]'; $('.phone').mask('(999) 999-9999'); }); 

如果不这样做,ASP.NET每次加载页面时都会执行一个名为pageLoad的函数:

 function pageLoad() { $.mask.definitions['~'] = '[+-]'; $('.phone').mask('(999) 999-9999'); };