MaskedEditExtender 太难用了,没钱用

发布于 2024-08-06 16:23:10 字数 1185 浏览 12 评论 0原文

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" />

The MaskedEditExtender does a good job of enforcing the rules, but my users have trouble typing into its TextBox.

I want to select all the contents of my TextBox when it gains focus.

A regular JavaScript solution does not work.

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

The MaskedEditExtender interferes.

How can I select all the contents of the TextBox when it gains focus?

<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" />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瘫痪情歌 2024-08-13 16:23:10

使用这个脚本:

<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>

use this script:

<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>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文