Да, сэр, я хочу сделать вариант вроде «916812 - Курт Кобейн», и когда я щелкнул по нему, показывалось только «916812», и я покончил с этим ..
но когда я хочу повторно выбрать вариант «916812» для других, он не изменился обратно на «916812 - Курт Кобейн». Как это решить? вот мой код:

HTML:

<body>
<select name="anggota_nis" id="anggota_nis">
<option hidden selected value=""></option>
<option value="916812">916812 - Kurt Cobain</option>
<option value="918291">918291 - Freddi Mercury</option>
<option value="912728">912728 - Gerry Cherone</option>
<option value="991829">991829 - Axl Rose</option>
<option value="927182">927182 - Steven Tyler</option>
<option value="912728">912739 - Russel Hitchcock</option>
</select>
</body>

JQuery:

  $("#anggota_nis").on('change', function(){
      var nis = $("#anggota_nis").val();
      $("#anggota_nis option[value="+nis+"]").text(nis);      
  })

Jsfiddle: http://jsfiddle.net/he7Laytg

вот форма, которую я создал

Итак, в основном я хочу, чтобы пользователь чувствовал себя полезным, потому что при поиске «имя ученика» основывается на «NIS», которое является только числовым значением из опции.

Я думаю, что искать «имя студента» только с «ID» довольно сложно, поэтому я поставил «имя студента» вместе с ним.

0
Noval Dwi Putra 21 Ноя 2018 в 02:21

1 ответ

Лучший ответ
//take note of the data-name attributes added to the options
//bind a change event listener to the select
var $anggotaNis = $('#anggota_nis').on('change', function(){
  $anggotaNis.find('.changed') //find the previously changed option
    .removeClass('changed') //remove the class, as we are reverting them
    .text(function(){ //set the text back, based on the value and name
      return this.value +' - '+ this.getAttribute('data-name');
    });
  
  $anggotaNis.find(':selected') //find the option just selected
    .addClass('changed') //add the class to mark that we are changing it
    .text(function(){ //set the text to just the value
      return this.value;
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="anggota_nis" id="anggota_nis">
<option hidden selected value=""></option>
<option value="916812" data-name="Kurt Cobain">916812 - Kurt Cobain</option>
<option value="918291" data-name="Freddi Mercury">918291 - Freddi Mercury</option>
<option value="912728" data-name="Gerry Cherone">912728 - Gerry Cherone</option>
<option value="991829" data-name="Axl Rose">991829 - Axl Rose</option>
<option value="927182" data-name="Steven Tyler">927182 - Steven Tyler</option>
<option value="912728" data-name="Russel Hitchcock">912739 - Russel Hitchcock</option>
</select>
1
Taplar 20 Ноя 2018 в 23:44