使用基因敲除.js使HTML中的制表符顺序保持禁用状态

瓦西姆

请看一下这个快速示例:http : //jsfiddle.net/wassimmansour/9v8nbqww/在“可选数据”输入中输入内容,然后按Tab键。

var ViewModel = function (opt, dep, oth) {
    this.optionalData = ko.observable(opt);
    this.dependantData = ko.observable(dep);
    this.otherData = ko.observable(oth);

    this.optionalDataPresent = ko.pureComputed(function () {
        return this.optionalData().trim() !== '';
    }, this);
};

ko.applyBindings(new ViewModel("", "", "123")); 

当“可选数据”为空时,我需要能够浏览并跳过“从属数据”输入字段。但是,如果“可选数据”不为空,则制表符顺序必须跳至“从属数据”,然后才能恢复其余输入。

现在正在发生的事情是仅在选项卡跳过该选项后才启用“从属数据”,这不是预期的或直观的流程。

这个问题有什么解决办法吗?


编辑

实际上,“可选数据”字段的格式必须为“ 1,234.56”或“ 1,234.00”。我为此使用的代码是:

<input data-bind="masked: optionalData, mask: 'N2'" />

ko.bindingHandlers.masked = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        var mask = allBindingsAccessor().mask || 'N2';
        var val = $(element).val();
        if (val || val == 0) {
            val = parseFloat((val + '').replace(/,/g, ''));
            if (!isNaN(val)) $(element).val(val.format(mask));
            else $(element).val('');
        }

        ko.utils.registerEventHandler(element, 'focusout', function () {
            var observable = valueAccessor();
            observable($(element).val());
        });
    },
    update: function (element, valueAccessor, allBindingsAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());
        var mask = allBindingsAccessor().mask || 'N2';
        var val = value;
        if (val || val == 0) {
            val = parseFloat((val + '').replace(/,/g, ''));
            if (!isNaN(val)) {
                $(element).val(val.format(mask));
                return;
            }
        }
        $(element).val(value);
    }
};

我在http://jsfiddle.net/wassimmansour/9v8nbqww/7/上更新了代码,该代码似乎无法在其中正常运行。

我测试了“ valueUpdate”解决方案,但它似乎与用于格式化的“ update”功能冲突。按下某个键后,将更新输入的值并应用格式化功能,这意味着将在每次按键后应用格式化。这将导致无法输入数据(如果输入“ 1”,输入将立即更新为“ 1.00”,然后必须将光标手动移回1之后再按2,然后输入也会被格式化并显示为“ 12.00')。

谢谢你。

帖木儿·奥萨奇(Timur Osadchiy)

这是更新代码:jsfiddle我建议valueUpdate: "keyup"在第一个字段上使用。

<div class='liveExample'>Optional Data
    <br/>
    <input data-bind='value: optionalData, valueUpdate: "keyup"' />
    <br/>Dependent Data
    <br/>
    <input data-bind='value: dependantData, attr {disabled: !optionalDataPresent()}' />
    <br />Other Data
    <br/>
    <input data-bind='value: otherData' />
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用基因敲除es5从数组中删除项目

来自分类Dev

如何使用基因敲除显示多个表中的数据?

来自分类Dev

如何使用基因敲除恢复模板中的数据

来自分类Dev

使用基因敲除.js基于选择下拉菜单切换按钮状态

来自分类Dev

在自定义模块中使用.fn扩展的nodejs中的基因敲除js?

来自分类Dev

使用基因敲除.js和moment.js时无效的日期

来自分类Dev

使用isotope和基因敲除(knockout.js)在初始页面加载时图像重叠

来自分类Dev

使用基因敲除.js防止再次在组件更改时加载数据

来自分类Dev

基因敲除.js observableArray计算值

来自分类Dev

使用基因敲除.js的自定义绑定处理程序中的显式设置值绑定处理程序

来自分类Dev

在某些情况下,如何使用基因敲除(knockout.js)将点击事件绑定到正文?

来自分类Dev

我想根据任务中的字符数向CSS添加溢出y滚动。这可以使用基因敲除

来自分类Dev

根据其选定状态更改基因敲除.js options文本

来自分类Dev

在ObservableArray基因敲除js中更新可观察值

来自分类Dev

基因敲除.js中的多个过滤器

来自分类Dev

基因敲除.js中的ko.applyBindings()在做什么?

来自分类Dev

没有require.js的基因敲除.js外部模板

来自分类Dev

基因敲除.js和元素上固定的左滚动绑定

来自分类Dev

具有foreach对象的基因敲除js模板失败

来自分类Dev

筛选一份基因敲除.js组件列表

来自分类Dev

从基因敲除

来自分类Dev

如何使用基因敲除工具将JS对象转换为JSON以将JSON数据发送到ASP.NET MVC中的服务器?

来自分类Dev

如何在带有空容器基因敲除的html绑定中显示可观察的内容

来自分类Dev

基因敲除.js为模板绑定中的每个渲染增加上下文

来自分类Dev

需要两次单击标签中的基因敲除.js和单选按钮

来自分类Dev

如何从基因敲除.js中的可观察数组访问可观察元素并更改其值

来自分类Dev

标签中的基因敲除.js和单选按钮需要单击两次

来自分类Dev

动态地将视图/模板加载到基因敲除.js中

来自分类Dev

知道为什么基因敲除法会从页面上删除所有html内容吗?

Related 相关文章

  1. 1

    使用基因敲除es5从数组中删除项目

  2. 2

    如何使用基因敲除显示多个表中的数据?

  3. 3

    如何使用基因敲除恢复模板中的数据

  4. 4

    使用基因敲除.js基于选择下拉菜单切换按钮状态

  5. 5

    在自定义模块中使用.fn扩展的nodejs中的基因敲除js?

  6. 6

    使用基因敲除.js和moment.js时无效的日期

  7. 7

    使用isotope和基因敲除(knockout.js)在初始页面加载时图像重叠

  8. 8

    使用基因敲除.js防止再次在组件更改时加载数据

  9. 9

    基因敲除.js observableArray计算值

  10. 10

    使用基因敲除.js的自定义绑定处理程序中的显式设置值绑定处理程序

  11. 11

    在某些情况下,如何使用基因敲除(knockout.js)将点击事件绑定到正文?

  12. 12

    我想根据任务中的字符数向CSS添加溢出y滚动。这可以使用基因敲除

  13. 13

    根据其选定状态更改基因敲除.js options文本

  14. 14

    在ObservableArray基因敲除js中更新可观察值

  15. 15

    基因敲除.js中的多个过滤器

  16. 16

    基因敲除.js中的ko.applyBindings()在做什么?

  17. 17

    没有require.js的基因敲除.js外部模板

  18. 18

    基因敲除.js和元素上固定的左滚动绑定

  19. 19

    具有foreach对象的基因敲除js模板失败

  20. 20

    筛选一份基因敲除.js组件列表

  21. 21

    从基因敲除

  22. 22

    如何使用基因敲除工具将JS对象转换为JSON以将JSON数据发送到ASP.NET MVC中的服务器?

  23. 23

    如何在带有空容器基因敲除的html绑定中显示可观察的内容

  24. 24

    基因敲除.js为模板绑定中的每个渲染增加上下文

  25. 25

    需要两次单击标签中的基因敲除.js和单选按钮

  26. 26

    如何从基因敲除.js中的可观察数组访问可观察元素并更改其值

  27. 27

    标签中的基因敲除.js和单选按钮需要单击两次

  28. 28

    动态地将视图/模板加载到基因敲除.js中

  29. 29

    知道为什么基因敲除法会从页面上删除所有html内容吗?

热门标签

归档