AngularJS x-editable:仅接受数字输入

时间:2015-01-08 06:00:50

标签: javascript angularjs

我想在Angular x-editable中有一个输入字段,它只接受数字输入。我想在单击可编辑元素时修改此部分。但我无法找到它。这来自

This is what I get when I inspect the element.

我想使用ng-keydown验证,我想将其插入此内容但我不知道如何。请帮忙!

谢谢!

2 个答案:

答案 0 :(得分:1)

要让角度x可编辑输入仅接受数字字符,您可以使用editable-number

从官方网站http://vitalets.github.io/angular-xeditable/#html5-inputs

中查看此演示中的数字字段

在这里:http://jsfiddle.net/NfPcH/82/

答案 1 :(得分:0)

我能够解决我的问题。我编辑了xeditable.js

您可以在xeditable.js中搜索此部分

self.inputEl.addClass('editable-input');
self.inputEl.attr('ng-model', '$data');

我添加了这部分

self.inputEl.attr('ng-keydown', 'editableKeydown($event)');

editableKeydown的JS($ event)

$scope.editableKeydown = function ($event) {
    if ($.inArray($event.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
        // Allow: Ctrl+A
        ($event.keyCode == 65 && $event.ctrlKey === true) ||
        // Allow: home, end, left, right
        ($event.keyCode >= 35 && $event.keyCode <= 39)) {
        // let it happen, don't do anything
        return;
    }
    // Ensure that it is a number and stop the keypress
    if (($event.shiftKey || ($event.keyCode < 48 || $event.keyCode > 57)) && ($event.keyCode < 96 || $event.keyCode > 105)) {
        $event.preventDefault();
    }

    global.editableCount = global.editableCount + 1;
    if (global.editableCount > 5) {
        $event.preventDefault();
    }
};

注意:global.editableCount是从另一个js文件声明的。我仍然是javascript,jquery和angular的初学者,所以我的代码还没那么优雅。 但是这个有效。我能够使角度x可编辑输入仅接受数字字符。