0

У меня есть текстовое поле с MaskedEditExtender. Когда я печатаю текст, вывод, который я получаю, смешивается с некоторыми дублируемыми номерами, а другие отсутствуют. Если я удалю MaskedEditExtender, текстовое поле работает нормально, но, конечно, не позволяет мне использовать маску ввода для текстового поля. Я пробовал различные комбинации параметров для MaskedEditExtender, но ничего, кроме удаления MaskedEditExtender, исправляет проблему. Что может быть причиной этого? Есть ли опция, которую я могу добавить или удалить, чтобы исправить это?Что вызывает текстовое поле с MaskedEditExtender для дублирования символов?

Вот пример: Одно из полей, которые у меня есть, - это поле для телефона с маской (999) 999-9999. Когда форма отображается, прежде чем что-либо будет введено, это выглядит так:

(___) ___-____ 

Это желаемое поведение. Однако, когда я ввести номер, скажем, 1234567890 она показывает, как это:

112_)233455660987_-____ 

1, 2, 3, 5 и 6 продублированы и 7, 8, 9, 0 появляются в обратном порядке. Не говоря уже о том, что маска, кажется, игнорируется.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Мне бы очень хотелось узнать, в чем проблема и как ее исправить. Я не могу этого сделать, если мой вопрос будет понижен. Спасибо!

Добавление полный код:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CtlCheckOutAddressConfirm.ascx.cs" Inherits="App_Controls_CtlCheckOutAddressConfirm" %> 
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> 
    <script language="javascript" type="text/javascript"> 
    function checkClearZip() 
    { 
     var bx = document.getElementById('<%=TxtZip.ClientID %>').value 

     if (bx == "_____") 
     { 
      document.getElementById('<%=TxtZip.ClientID %>').value = ""; 
     } 
    } 

    function checkClearPhone() 
    { 
     var bx = document.getElementById('<%=TxtPhone.ClientID %>').value 

     if (bx == "(___) ___-____") 
     { 
      document.getElementById('<%=TxtPhone.ClientID %>').value = ""; 
     } 
    } 
    script> 

    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 

<asp:UpdatePanel runat="server" ID="updCart" UpdateMode="Always"> 
<ContentTemplate> 
    <div> 
     <table> 

      <tr><td align="right"> 
      <font style=" font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height:20px; color: #575a61;">*Phone</font> 
      </td><td align="left"> 
      <asp:TextBox ID="TxtPhone" MaxLength="15" onblur="checkClearPhone();" runat="server" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" Height="28px" Width="300px" Font-Size="X-Large"></asp:TextBox><br />     
      <ajaxToolkit:MaskedEditExtender ID="MskPhone" runat="server" 
       TargetControlID="TxtPhone" 
       Mask="(999) 999-9999" 
       MessageValidatorTip="true" 
       OnFocusCssClass="MaskedEditFocus" 
       OnInvalidCssClass="MaskedEditError" 
       MaskType="None" 
       DisplayMoney="None" 
       AcceptNegative="None" 
       ClearMaskOnLostFocus="false" /> 
       </td></tr> 
      <tr><td align="right"> 
      <font style=" font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height:20px; color: #575a61;">*E-mail</font> 
      </td><td align="left"> 
      <asp:TextBox ID="TxtEmail" MaxLength="50" runat="server" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" Height="28px" Width="300px" Font-Size="X-Large"></asp:TextBox><br />     
      </td></tr> 
      </table> 
      <div class="spacer"></div> 

      <center><asp:ImageButton runat="server" ID="BtnContinue" ImageUrl="~/images/Buttons/bebtn-save.gif" OnClick="BtnContinue_Click" /></center> 
     <asp:HiddenField ID="HdnMerch" runat="server" /> 
     <asp:HiddenField ID="HdnAdd" runat="server" /> 
    </div> </ContentTemplate> 
</asp:UpdatePanel> 
+0

Можете ли вы отправить полную разметку? Код, который вы предоставили, отлично работает. – afzalulh

+0

Код был добавлен. Благодаря! – boilers222

ответ

-1

Это один год спустя, но хорошо, за исключением тех, которые могут принести пользу.

Причиной может быть частичная обратная сторона страницы. Помните о ScriptManager, который вы используете. Попробуйте изолировать код и посмотреть, если это произойдет.

0

Я сам испытал эту проблему.

репликации:

  • Добавьте два MaskedEditExtenders указал на одном текстовом поле.
  • Запустите браузер и введите данные в текстовое поле. Каждый символ будет удвоен/дублирован.

Решение (по крайней мере для меня):

  • Оказывается файл ASPX чист - не дублирует, что я могу видеть. Попробуйте следующие элементы:
  • Посмотрите в CodeBehind для динамически созданного MaskedEditExtender, TargetControlID которого указывает на соответствующее текстовое поле.
  • Примечание: это может быть сделано непосредственно в MasterPage, CodeBehind той же страницы или на одной из этих страниц, вызывающей неясно определенную функцию в другой области, которая выполняет эту функцию (как в случае с моей проблемой).

Счастливое кодирование!

+0

Можете ли вы изменить это, чтобы больше отвечать? В противном случае, как только вы получите достаточную репутацию, вы можете публиковать вещи, чтобы попробовать в качестве комментариев. – kaz