0

MaskedEditExtender を含むテキスト ボックスがあります。テキストを入力すると、得られる出力がごちゃごちゃになっていて、一部の数字が重複しており、他の数字が欠落しています。MaskedEditExtender を削除すると、テキスト ボックスは正常に動作しますが、もちろん、テキスト ボックスに入力マスクを使用することはできません。MaskedEditExtender のさまざまなオプションの組み合わせを試しましたが、MaskedEditExtender を削除する以外に問題はありません。何が原因でしょうか? これを修正するために追加または削除できるオプションはありますか?

ここに例があります: 私が持っているフィールドの 1 つは、マスク (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>
4

2 に答える 2

0

私はこの問題を自分で経験しました。

複製:

  • 1 つのテキスト ボックスを指す 2 つの MaskedEditExtender を追加します。
  • ブラウザを起動し、テキスト ボックスにデータを入力します。各文字が 2 倍/複製されます。

解決策(少なくとも私にとっては):

  • あなたの ASPX ファイルはきれいなようです - 私が見ることができる重複はありません。次の項目を試してください。
  • TargetControlID が問題のテキスト ボックスを指している、動的に構築された MaskedEditExtender の CodeBehind を調べます。
  • 注: これは、MasterPage、同じページの CodeBehind、またはこの関数を実行する別の領域であいまいに定義された関数を呼び出すこれらのページのいずれかで直接実行できます (私の問題の場合と同様)。

ハッピーコーディング!

于 2015-05-22T18:27:59.640 に答える