attr с функцией select2 - PullRequest
       3

attr с функцией select2

1 голос
/ 05 февраля 2020

Я использую select2 для поиска. Я использую следующий код

<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<select class="form-control select2" id="by_content">
  <option value="Select Medicine">Select Medicine</option>
  <option value="Abc">Abc</option>
</select>
<button id="click">Search</button>
<script>
  $('.select2').select2();
</script>
<script>
  $("#click").click(function() {
    $('select option[value="Select Medicine"]').attr("selected", true);
  });
</script>

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

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

На самом деле ваш код работает хорошо. Но вы хотите вызвать изменение выбранного из select2. Таким образом, вы можете достичь этого таким образом.

$('select').val('Select Medicine').trigger('change');

Обновлено

Вы должны переместить inline jquery в правильное место, как это

<body>  
    <div>  
        <p> </p>  
    </div>  
</body>
@Scripts.Render("~/bundles/jquery")
<scripts type="text/javascript">
  $('.select2').select2();
  $("#click").click(function(){
          $('select option[value="Select Medicine"]').attr("selected",true);
          console.log($('select option[value="Select Medicine"]').attr("selected"));

          // Trigger selected value here
          $('select').val('Select Medicine').trigger('change');
      });
</scripts>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script> 

<select class="form-control select2" id="by_content">  
   <option value="Select Medicine">Select Medicine</option> 
   <option value="Abc">Abc</option> 
   <option value="Def">Def</option>
</select> 
<button id="click">Search</button>
<script> $('.select2').select2(); </script>
<script>
  $("#click").click(function(){
      $('select option[value="Select Medicine"]').attr("selected",true);
      console.log($('select option[value="Select Medicine"]').attr("selected"));
      
      // Trigger selected value here
      $('select').val('Select Medicine').trigger('change');
  });
</script>
0 голосов
/ 05 февраля 2020

Вы можете использовать следующие

Вы можете просто установить значение на select2, и после этого события изменения триггера вызова сообщить, что select2 is option option будет изменен, и он обновит пользовательский интерфейс.

<script>
  $("#click").click(function() {
    $('select').val("Select Medicine").trigger('change');
  });
</script>
...