2014-03-19 58 views
1

我有一點jQuery代碼適用的電話號碼掩碼中的文本字段的一種形式:在AutoPostBack = true上觸發jQuery代碼?

<script type="text/javascript" src="../../../js/jquery.maskedinput.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.mask.definitions['~'] = '[+-]'; 
     $('.phone').mask('(999) 999-9999'); 
    }); 
</script> 

當用戶第一次進入的形式,或者如果使用刷新頁面它工作得很好。但是,有一個DropDownList可以讓用戶選擇不同的送貨地址。此DropDownList將其AutoPostBack屬性設置爲「true」。

<tr id="trAddressBook" runat="server"> 
     <th>Ship To:</th> 
      <td> 
       <asp:DropDownList ID="AddressBook" runat="server" Width="200px" DataTextField="Value" DataValueField="Key" AppendDataBoundItems="true" AutoPostBack="true"> 
        <asp:ListItem Text="Billing Address" Value="0" /> 
         <asp:ListItem Text="New Address" Value="-1" /> 
       </asp:DropDownList> 
       </td> 
</tr> 

每當用戶選擇從該DropDownList的一個選項,該電話掩模jQuery代碼不再出現在電話號碼的文本框(ES)。當我在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(); 
    } 
+0

你是否在更新面板中封裝了表單? – Pete

回答

2

,因爲它一直以來我與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'); 
}; 
+0

'load'事件在jQuery v1.8中已棄用https://api.jquery.com/load-event/ – EfrainReyes

+0

我嘗試了$(window).load(function(){});和函數pageLoad()但不幸解決了這個問題。 –

+0

您的JavaScript放在您的HTML的末尾,就在關閉''標籤之前,還是位於''? –

相關問題