Вот пример ситуации, с которой я сталкиваюсь:

У меня есть куча kendoNumericTextBoxes, добавленных так

<input type="number" id="test1" class="kendoText" data-role="numerictextbox" data-bind="<databind>" />    
<input type="number" id="test2" class="kendoText" data-role="numerictextbox" data-bind="<databind>" />   
<input type="number" id="test3" class="kendoText" data-role="numerictextbox" data-bind="<databind>" />

А затем скрипт, который запускает $(document).ready для установки конфигурации для каждого, например,

$("#test1").kendoNumericTextBox({
     format: "c0",
     spinners: false,
     max: 1000000000,
     min: 0
});

Поскольку для многих из них я настраивал конфигурацию на одни и те же значения, моей непосредственной мыслью было автоматизировать это с помощью цикла

var tags = ["#test1", "#test2", "#test3"];

tags.forEach(tag => 
    $(tag).kendoNumericTextBox({
        format: "c0",
        spinners: false,
        max: 1000000000,
        min: 0
    });
);

Но, похоже, это не работает, и я не могу найти причину, по которой это не сработает. Любые идеи о том, что может быть причиной, и как я мог это исправить?

-1
ryan.kom 20 Дек 2019 в 17:20

1 ответ

Лучший ответ

Попробуйте следующее:

$( document ).ready(function() {
    var kendoInputs = $( '.kendoText' );
    kendoInputs.kendoNumericTextBox({
        format: 'c0',
        spinners: false,
        max: 1000000000,
        min: 0
    });
});

Вместо того, чтобы объявлять id для каждого входа в массиве, вы можете использовать атрибут class для нацеливания на все элементы с таким class.

Также у вас есть дубликат id's в вашем примере HTML, что также может быть проблемой.

1
Andrejs Gubars 20 Дек 2019 в 14:36