Настройка выбора формы отключена для элемента DOM, представленного переменной - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать элемент формы, в этом случае неактивные параметры ввода выбора отключены. Я наткнулся на этот код здесь как на рекомендуемое решение:

$('#elementid option:not(:selected)').prop('disabled', true);

Я использую переменную для представления объекта в моем l oop:

var sinput = $(this).parents("tr").find('select');

Мой вопрос - как применить код опоры через репрезентативную переменную sinput? Могу я вообще это сделать?

Ответы [ 2 ]

2 голосов
/ 29 мая 2020

Если я вас правильно понял, $ (this) должен быть некоторым объектом в событии

Чтобы повторно использовать переменную, вы можете сделать

var $sinput = $(this).closest("tr").find('select');
$('option:not(:selected)', $sinput).prop('disabled', true);

или

var $sinput = $(this).closest("tr").find('select');
$sinput.find('option:not(:selected)').prop('disabled', true);

Я бы сделал это напрямую

$(".dis").on("click", function() {
  $(this).closest("tr")  // the row of the button
    .find('select option:not(:selected)') // all not selected options
    .prop('disabled', true);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr>
    <td><button type="button" class="dis">Disable not selected</button>
      <select>
        <option value="">Please select</option>
        <option value="1">One</option>
        <option value="2" selected>Two</option>
      </select>
    </td>
  </tr>
  <tr>
    <td><button type="button" class="dis">Disable not selected</button>
      <select>
        <option value="">Please select</option>
        <option value="1" selected>One</option>
        <option value="2">Two</option>
      </select>
    </td>
  </tr>
</table>

Если вы просто хотите отключить все невыбранные параметры в таблице при загрузке страницы, это может быть

$(function() { 
 $("#tableId")
   .find('select option:not(:selected)')
   .prop('disabled', true);
});
0 голосов
/ 07 июня 2020

Я считаю, что этого можно достичь двумя способами -

$ ('option: not (: selected)', $ sinput);

sinput.find ('option: not (: selected) ');

...