微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自定义淘汰赛绑定在 IOS 和 Android 中不起作用

如何解决自定义淘汰赛绑定在 IOS 和 Android 中不起作用

我在文本框中取消了自定义绑定,以便在文本框中显示逗号和 $ 和 + 符号,但是当我单击“应用”按钮时,输入/更改的文本框值未反映在 IOS/Android 上的程序中。请帮忙。提前致谢。

HTML:

<span class="slider-inputs__label">to</span>

<input type="tel" class="form-control form-control-lg" data-bind="value: Max,formatted: Max,attr: {'id': Name + 'MobileFilterTo'},formatOptions : { format: Format },addplusSign : AddplusSign">

<button type="button" class="btn btn-sm btn-tertiary pull-right z-index: 9999" data-bind="click: $root.RangeSliderSelected.bind($data)">Apply <span data-bind="text:HeaderName"></span></button>

自定义绑定 -->

ko.bindingHandlers.formatted = {

    init: function (element,valueAccessor,allBindingsAccessor) {

        let options = allBindingsAccessor().formatOptions || {};     

        let addplusSign = allBindingsAccessor().addplusSign;       

        var value = ko.utils.unwrapObservable(valueAccessor()),$element = $(element),method = "val";

     /* Add comma spearted value */
        if (options.format == FormatOptions.Formattednumber || options.format == FormatOptions.Amount) {

            $(element).keyup(function (e) {
                var key = e.keyCode;
                if (key >= 48 && key <= 57) {

                    let value: string = $(element).val().toString();
                    if (value.length >= 4) {

                        value = $(element).val().toString().replace(",","");
                        $(element).val(numberWithCommas(value))
                    }
                }
                else {
                    e.preventDefault();
                }
            });

        /* Add plus(+) sign */
            if (options.format == FormatOptions.Amount) {               

                if (addplusSign != undefined && addplusSign != "") {   
                    $(element).attr('maxlength','8');
                    $element[method]("$" + numberWithCommas(value) + addplusSign);
                }
                else {   
                    $(element).attr('maxlength','8');
                    $element[method]("$" + numberWithCommas(value));
                }

                /* Edge case : if user will add first char as number,make it $ + Number */
                $(element).keypress(function (e) {
                    if ($(element).val() != "" && $(element).val().toString().charat(0) != "$") {

                        $(element).val("$" + $(element).val());
                    }
                });

            /*  convert 01 to 1,blank value to $0,$00 to $0 and show a user friendly message 
                for input */
                $(element).keyup(function (e) {

                    if ($(element).val() == "" || $(element).val() == "$00") {

                        $(element).val("$0");
                    }

                    var key = e.keyCode;
                    if (key >= 48 && key <= 57) {

                        let value: string = $(element).val().toString();
                        value = value.replace("$","");

                        if (value.length == 2 && value.indexOf("0") == 0) {
                            value = value.substring(1);
                            $(element).val("$" + value);
                        }

                        if (value.length >= 4) {

                            value = $(this).val().toString().replace(","");
                            $(this).val(numberWithCommas(value))
                        }

                        if (Number(value.replace("$","")) > 100000) {
                            $(element).val("$0");
                            $("#ACVFilterMessage span").text("Please enter a value between $0 and 
                         $100,000");
                        }
                        else
                            $("#ACVFilterMessage span").text("");
                    }
                    else {
                        e.preventDefault();
                    }
                });
                
            }
            else if (options.format == FormatOptions.Formattednumber) {
                $(element).attr('maxlength','7');
                $(element).val(numberWithCommas(value))
            }          
        }

        if (options.format == FormatOptions.Number) {
            $(element).attr('maxlength','4');
            $(element).val(value);
        }
       
        
        $(element).keypress(function (e) {
            var key = e.keyCode;
            if (key >= 48 && key <= 57) {
            }
            else {
                e.preventDefault();
            }
        });

        $(element).on("cut copy paste",function (e) {
            e.preventDefault();
        });
      
    },update: function (element,allBindingsAccessor) {

        let options = allBindingsAccessor().formatOptions || {};       

        let addplusSign = allBindingsAccessor().addplusSign; 

        var value = ko.utils.unwrapObservable(valueAccessor()),method = "val";

        if (options.format == FormatOptions.Amount) {
            $(element).attr('maxlength','8');

            if (addplusSign != undefined && addplusSign != "") {

                if (numberWithCommas(value) == "100,000" || numberWithCommas(value) == "$100,000") {
                    if (value.toString().indexOf('$') > -1) {
                        $element[method](numberWithCommas(value) + addplusSign);
                    }
                    else {
                        $element[method]("$" + numberWithCommas(value) + addplusSign);
                    }
                }
                else {
                    if (value.toString().indexOf('$') > -1) {
                        $element[method](numberWithCommas(value));
                    }
                    else {
                        $element[method]("$" + numberWithCommas(value));
                    }
                }
            }
            else {

                if (value.toString().indexOf('$') > -1) {
                    $element[method](numberWithCommas(value));
                }
                else {
                    $element[method]("$" + numberWithCommas(value));
                }
            }
           
        }
            else if (options.format == FormatOptions.Formattednumber) {
                $(element).val(numberWithCommas(value))
            }
            else if (options.format == FormatOptions.Number) {
                $(element).val(value);
        }  
    }
};

我在文本框中取消了自定义绑定,以便在文本框中显示逗号和 $ 和 + 符号,但是当我单击“应用”按钮时,输入/更改的文本框值未反映在 IOS/Android 上的程序中。请帮忙。提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?