Как удалить нежелательное значение параметра из раскрывающегося списка? - PullRequest
2 голосов
/ 19 июня 2020
example 1

<select id="BillTypeId" name="BillTypeId" required="" class="form-control">
<option value=""></option>
<option value="9" tax-groupid="1" data-price="1500.00" data-isfixed="False">LAUNDRY</option>
<option value="1064" tax-groupid="1" data-price="0.00" data-isfixed="False">DEBIT</option>
<option value="1065" tax-groupid="1" data-price="0.00" data-isfixed="False">CREDIT</option>
</select>

Предположим, у меня есть раскрывающийся список с динамическими c option значениями.

У меня есть function для получения этих значений из контроллера.

$.ajax({
            url: '/cash/bill/PostingBillTypeCombo',
            dataType: 'html',
            data: {
                name: "BillTypeId",
                required: true,
                currencyId: selectedCurrencyId
            },
            method: 'POST',
            success: function (data) {
                debugger;
                if (data.op == "DEBIT" || data.op== "CREDIT")
                {
                $('#PostingBillTypeComboContainer').html("");
                $('#PostingBillTypeComboContainer').html(data);
                }

            },
        });

В моем раскрывающемся списке он имеет 3 значения: кредит, дебет и запуск dry.

В function (data) я использую data.op, чтобы проверить, дебетовый или кредитный if (data.op == "DEBIT" || data.op== "CREDIT") (проверьте пример 1) , если он содержит эти имена, удалите остальные значения параметров, например: LAUN DRY и покажите только значения дебета и кредита в раскрывающемся списке.

Я новичок в этом, пожалуйста, помогите мне извини за мою бедную Энгли sh

Ответы [ 3 ]

2 голосов
/ 19 июня 2020

Можно сделать примерно так:

if (data.op == "DEBIT") {
  $("#BillTypeId option:not(:contains('DEBIT'))").hide();
} else if (data.op == "CREDIT") {
  $("#BillTypeId option:not(:contains('CREDIT'))").hide();
}

$("#BillTypeId option:not(:contains('DEBIT'))").hide();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
<select id="BillTypeId">
  <option value=""></option>
  <option value="9">LAUNDRY</option>
  <option value="1064">DEBIT</option>
  <option value="1065">CREDIT</option>
</select>
0 голосов
/ 19 июня 2020

Давайте сделаем это с помощью CSS:

.debit-credit option:not(.debit-credit) {
    display: none;
}

Давайте применим это к структуре:

<select id="BillTypeId" name="BillTypeId" required="" class="form-control">
<option class="debit-credit" value=""></option>
<option value="9" tax-groupid="1" data-price="1500.00" data-isfixed="False">LAUNDRY</option>
<option class="debit-credit" value="1064" tax-groupid="1" data-price="0.00" data-isfixed="False">DEBIT</option>
<option class="debit-credit" value="1065" tax-groupid="1" data-price="0.00" data-isfixed="False">CREDIT</option>
</select>

Затем вы добавите debit-credit класс к BillTypeId, если хотите чтобы скрыть LAUNDRY и удалить этот класс, если вы хотите его показать:

$.ajax({
            url: '/cash/bill/PostingBillTypeCombo',
            dataType: 'html',
            data: {
                name: "BillTypeId",
                required: true,
                currencyId: selectedCurrencyId
            },
            method: 'POST',
            success: function (data) {
                debugger;
                if (data.op == "DEBIT" || data.op== "CREDIT")
                {
                $('#PostingBillTypeComboContainer').html("");
                $('#PostingBillTypeComboContainer').html(data);
                $('#BillTypeId').addClass("debit-credit");
                } else {
                $('#BillTypeId').removeClass("debit-credit");
                }

            },
        });

Вот доказательство концепции: https://jsfiddle.net/hz6vqnbj/

0 голосов
/ 19 июня 2020
$("#BillTypeId option[value=1064]").hide();

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

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