Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function update_value() {
- //Вот тут ты создаёшь глобальную переменную. Чтобы она была локальной, есть var или let, если тебе можно в ES6
- //Далее, когда ты вытаскиваешь значение из селекта, тебе не нужно фигачить такую кошмарную конструкцию. Достаточно
- // $('#parameter').val()
- parameter = $("option:selected", $('#parameter')).val();
- //Не знаю, идёшь ты с http или https, но если у тебя совпадает домен, можно было просто написать относительный URL:
- // $.get('/severity/value' + parameter)
- $.get('https://' + window.location.hostname + '/severity/value/' + parameter).done(function(data) {
- //Если ты хочешь в дальнейшем заменить всё содержимое, чистить его не обязательно - ниже уточню, почему
- $('#value').empty();
- //Если то, что ты запрашиваешь, отдаёт честный json, то это можно не делать - jQuery парсит сама
- params = JSON.parse(data);
- //Строго говоря, в таких циклах надо ещё проверять, что ты имеешь дело со свойством объекта, а не его прототипа:
- // if(Object.hasOwnProperty(params, key))
- // Я мог ошибиться в порядке переменнях, но название метода должно быть правильное. А вообще у большинства библиотек,
- // включая jQuery, есть методы для пробегания по таким объектам, которые это делают за тебя.
- for (var key in params){
- // Когда ты работаешь с DOMом, хороший тон - делать минимум мутаций. Потому что они медленные. Поэтому
- // правильнее бы было сначала собрать всё вместе (в строку или DocumentFragment), и только потом вставлять.
- // Я бы здесь сделал длинную строку, а потом вне цикла сказал $('#value').html(длинная строка)
- $('#value').append($('<option value="' + parameter + '/' + key + '">' + params[key] + '</option>'));
- };
- //Опять-таки, селект достаточно умный, чтобы понять $('#value').val(value того option'а, который должен быть выбран)
- $('#value :first').attr("selected", "selected");
- });
- };
- function update_parameter() {
- component = $("option:selected", $('#component')).val();
- $.get('https://' + window.location.hostname + '/severity/parameter/' + component).done(function(data) {
- $('#parameter').empty();
- params = JSON.parse(data);
- for (var key in params){
- $('#parameter').append($('<option value="' + component + '/' + key + '">' + params[key] + '</option>'));
- };
- $('#parameter :first').attr("selected", "selected");
- update_value();
- });
- };
- // Обычно используют краткую форму: $(function(){ ... })
- $(document).ready(function() {
- $('#component').on('change', function (e) {
- update_parameter();
- });
- $('#parameter').on('change', function (e) {
- update_value();
- });
- update_parameter();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement