我有一點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();
}
你是否在更新面板中封裝了表單? – Pete