1

MaskedEditExtender在执行规则方面做得很好,但我的用户无法在其文本框中输入。MaskedEditExtender太难用于金钱

我想在获取焦点时选择我的TextBox的所有内容。

常规的JavaScript解决方案无法正常工作。

onfocus="javascript:this.select();" 

MaskedEditExtender干扰。

如何在获取焦点时选择TextBox的所有内容?

<asp:TextBox 
    ID="TextBoxPrice" 
    runat="server" /> 
<ajaxToolkit:MaskedEditExtender 
    ID="MaskedEditExtenderTextBoxPrice" 
    runat="server" 
    TargetControlID="TextBoxPrice" 
    Mask="9,999.99" 
    MaskType="Number" 
    MessageValidatorTip="False" 
    OnFocusCssClass="MaskedEditFocus" 
    OnInvalidCssClass="MaskedEditError" 
    InputDirection="RightToLeft" 
    AcceptNegative="None" 
    DisplayMoney="Left" /> 
<ajaxToolkit:MaskedEditValidator 
    ID="MaskedEditValidatorTextBoxPrice" 
    runat="server" 
    ControlToValidate="TextBoxPrice" 
    ControlExtender="MaskedEditExtenderTextBoxPrice" 
    Display="Dynamic" 
    IsValidEmpty="False" 
    EmptyValueMessage="Price is required" 
    InvalidValueMessage="Price is invalid" 
    MinimumValue= "0.01" 
    MinimumValueMessage="Price is too small" 
    MaximumValue="9999.99" 
    MaximumValueMessage="Price is too large" /> 
+2

相关论坛讨论:http://forums.asp.net/t/1369295.aspx – 2009-09-25 14:25:09

+0

曾经找到这样的东西?我可能只是开始赏金。 – 2014-01-15 21:54:59

回答

0

使用这个脚本:

<script type="text/javascript"> 
 

 
     function selectAllCharsBefore(inputText, char) { 
 

 

 
      setTimeout(function() { 
 
       if (!inputText) return false; 
 

 
       var indexChar = inputText.value.indexOf(char); 
 
       if (indexChar != -1) createSelection(inputText, 0, indexChar) 
 
      }, 100); 
 

 

 
      return true; 
 

 

 
     } 
 

 
     function whatDecimalSeparator() { 
 

 
      var n = 1.1; 
 

 
      n = n.toLocaleString().substring(1, 2); 
 

 
      return n; 
 

 
     } 
 

 
     function createSelection(field, start, end) { 
 
      if (field.createTextRange) { 
 
       var selRange = field.createTextRange(); 
 
       selRange.collapse(true); 
 
       selRange.moveStart('character', start); 
 
       selRange.moveEnd('character', end); 
 
       selRange.select(); 
 
       field.focus(); 
 
      } else if (field.setSelectionRange) { 
 
       field.focus(); 
 
       field.setSelectionRange(start, end); 
 
      } else if (typeof field.selectionStart != 'undefined') { 
 
       field.selectionStart = start; 
 
       field.selectionEnd = end; 
 
       field.focus(); 
 
      } 
 
     } 
 

 

 
    </script>