Получить значения входных данных и преобразовать их в определенный формат массива - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь получить значение всех входных данных, которые находятся в заголовке таблицы, созданной с помощью ng-repeat при нажатии кнопки.

Это мой html код для создания всех входов

<th ng-repeat="(index, header) in filterTbl.gatVisibleFilterHeaders track by $index"
    style="display: {{header.is_visible ? 'block' : 'none'}};
           width: {{filterTbl.gatFilterHeadersWidth}}px !important;">
    <div>
        <span class="field-{{ header.filter_type }} th-title">{{ header.name }}</span>
        <span class="fa fa-filter header-filter spanHF-{{index}}" title="Filter"
              ng-click="filterTbl.showFilter(index, $event)" role="button" 
              tabindex="0"></span>
    </div>
    <div class="actual-filter divAF-{{index}} filter_input">
        <input type="hidden" value="{{ header.col }}" class="header_col"
               name="filter_header_col" />
        <div ng-if="header.filter_type == 'text' || header.filter_type == ''"
             ng-click="filterTbl.getFilterRecords(index, header)">
            <div class="filter_select_container_{{ index }}"
                 style="display: block">
                <select class="form-control select2 filter_{{ index }}"
                        name="filter_select" multiple="multiple">
                </select>
            </div>
        </div>
        <div ng-if="header.filter_type == 'numeric'">
            <div class="number-range">
                <div style="display: none;" class="filter-numeric-error"></div>
                   <input type="text" class="form-control froms "
                          onclick="event.stopPropagation();" 
                          placeholder="From"
                          pattern="[0-9]{1,14}\.[0-9]{2}"/>
                <div class="clearfix"></div>
            </div>
            <div class="number-range">
                <div style="display: none;" class="filter-numeric-error"></div>
                    <input type="text" class="form-control to"
                           onclick="event.stopPropagation();"
                           placeholder="To" pattern="[0-9]{1,14}\.[0-9]{2}"/>
                <div class="clearfix"></div>
            </div>
        </div>
    </div>
</th>

Я успешно создал все теги select и входы, но смог правильно передать их на стороне javascript.

Это моя функция, когда я нажимаю кнопку, чтобы получить все значения созданного ввода

var filterSelect = [];

$('#filterTable').find('table input,table select,table textarea').each(function(item, value) {
    // console.log(item, value);
    console.log(this.value);
});

Я успешно получаю значение выбора, но мне нужно преобразовать его в приведите что-то вроде этого

['name of input': value, 'name of input': value]

пример: [col:1, filter_select: "sample"]

У кого-нибудь есть идеи, как мне это сделать sh? застрял на 1 неделю.

1 Ответ

0 голосов
/ 09 февраля 2020

Пытались ли вы иметь array, в котором вы выбирали sh значения, выбранные из select? Ваша измененная функция будет выглядеть следующим образом:

   filterSelect = [];

    $('#filterTable').find('table input,table select,table 
     textarea').each(function(item, value) {
        var obj={item:value};

        this.filterSelect.push(obj);
        //to verify the array items
        angular.forEach(this.filterSelect, function(value, key) {
            console.log(key + ': ' + value);
        });

     });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...