Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function update_value() {
  2.     //Вот тут ты создаёшь глобальную переменную. Чтобы она была локальной, есть var или let, если тебе можно в ES6
  3.     //Далее, когда ты вытаскиваешь значение из селекта, тебе не нужно фигачить такую кошмарную конструкцию. Достаточно
  4.     // $('#parameter').val()
  5.     parameter = $("option:selected", $('#parameter')).val();
  6.     //Не знаю, идёшь ты с http или https, но если у тебя совпадает домен, можно было просто написать относительный URL:
  7.     // $.get('/severity/value' + parameter)
  8.     $.get('https://' + window.location.hostname + '/severity/value/' + parameter).done(function(data) {
  9.         //Если ты хочешь в дальнейшем заменить всё содержимое, чистить его не обязательно - ниже уточню, почему
  10.         $('#value').empty();
  11.         //Если то, что ты запрашиваешь, отдаёт честный json, то это можно не делать - jQuery парсит сама
  12.         params = JSON.parse(data);
  13.         //Строго говоря, в таких циклах надо ещё проверять, что ты имеешь дело со свойством объекта, а не его прототипа:
  14.         // if(Object.hasOwnProperty(params, key))
  15.         // Я мог ошибиться в порядке переменнях, но название метода должно быть правильное. А вообще у большинства библиотек,
  16.         // включая jQuery, есть методы для пробегания по таким объектам, которые это делают за тебя.
  17.         for (var key in params){
  18.             // Когда ты работаешь с DOMом, хороший тон - делать минимум мутаций. Потому что они медленные. Поэтому
  19.             // правильнее бы было сначала собрать всё вместе (в строку или DocumentFragment), и только потом вставлять.
  20.             // Я бы здесь сделал длинную строку, а потом вне цикла сказал $('#value').html(длинная строка)
  21.           $('#value').append($('<option value="' + parameter + '/' + key + '">' + params[key] + '</option>'));
  22.         };
  23.         //Опять-таки, селект достаточно умный, чтобы понять $('#value').val(value того option'а, который должен быть выбран)
  24.         $('#value :first').attr("selected", "selected");
  25.     });
  26. };
  27.  
  28. function update_parameter() {
  29.     component = $("option:selected", $('#component')).val();
  30.     $.get('https://' + window.location.hostname + '/severity/parameter/' + component).done(function(data) {
  31.         $('#parameter').empty();
  32.         params = JSON.parse(data);
  33.         for (var key in params){
  34.           $('#parameter').append($('<option value="' + component + '/' + key + '">' + params[key] + '</option>'));
  35.         };
  36.         $('#parameter :first').attr("selected", "selected");
  37.         update_value();
  38.     });
  39. };
  40.  
  41. // Обычно используют краткую форму: $(function(){ ... })
  42. $(document).ready(function() {
  43.     $('#component').on('change', function (e) {
  44.         update_parameter();
  45.     });
  46.     $('#parameter').on('change', function (e) {
  47.         update_value();
  48.     });
  49.     update_parameter();
  50. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement