ユーザ用ツール

サイト用ツール


プログラム言語:javascript_jquery:bootstrap:セレクトボックス

【Bootstrap】セレクトボックスの操作後、selectpicker への反映

セレクトボックスの値やオプションなどを変更後、Bootstrap の selectpicker で作られた div タグにも反映するには selectpicker('refresh') を使う。

オプションを差し替える例

  1. <select name="type">
  2. <option value="1">1</option>
  3. <option value="10">10</option>
  4. <option value="20">20</option>
  5. </select>
  6. <select name="number">
  7. <option value="1">1</option>
  8. <option value="2">2</option>
  9. <option value="3">3</option>
  10. <option value="4">4</option>
  11. <option value="5">5</option>
  12. ...省略...
  13. <option value="30">30</option>
  14. </select>
  15.  
  16. <script>
  17. $(function() {
  18. // typeが変更された際に、numberオプションを差し替える
  19. $('[name="type"]').on('change', function(){
  20. // keyがtype、valueがnumberの最小値
  21. let number_min = {1:1, 10:10, 20:20};
  22. let type = $('[name="type"] option:selected').val();
  23. let number = $('[name="number"] option:selected').val();
  24.  
  25. if (number_min[type] == null) {
  26. return;
  27. }
  28.  
  29. // numberのオプションを削除
  30. $('[name="number"] > option').remove();
  31.  
  32. // セレクトボックスにオプションを追加
  33. for(let i=number_min[type]; i<=30; i++) {
  34. $('[name="number"]').append($('<option>').html(i).val(i));
  35. }
  36.  
  37. // 元々選択済みだったオプションを選択し直す
  38. $('[name="number"] option[value="' + number + '"]').prop('selected',true);
  39.  
  40. // Bootstrapの要素(divタグ)にも反映
  41. $('[name="number"]').selectpicker('refresh');
  42. });
  43. });
  44. </script>

コメント

コメントを入力. Wiki文法が有効です:
 
プログラム言語/javascript_jquery/bootstrap/セレクトボックス.txt · 最終更新: 2019/04/04 17:25 by yusuke_komori