Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.6 kB
2
Indexable
Never
$(document).ready(function () {
    scopeRadios = $('input[name="scope"]');
    categorySelect = $('#category');
    sourceSelect = $('#source');
    unitInput = $('#unit');
    unitInput2 = $('#unit2').hide(); // hide second input box by default
    carbonFactorInput = $('#carbonfactor');
    resultInput = $('#result');
    commentInput = $('#comment');
    charCount = $('#charCount');

    scopeRadios.change(onScopeChange);
    categorySelect.change(onCategoryChange);
    sourceSelect.change(onSourceChange);
    unitInput.add(unitInput2).on('input', onUnitInputChange);
    commentInput.on('keyup', onCommentKeyUp);
    $('#submit').click(onSubmitClick);
    $('#clear').click(onClearClick);

    resetForm();
});

function resetForm() {
    // Clear inputs and textarea
    $('input').val('');
    $('textarea').val('');
    $('#unit-label2').text('');
    $('#charCount').text('0/250');
    unitInput2.hide();
    unitInput.removeClass('col-4').addClass('col-12');
    $('.invalid-input').removeClass('invalid-input');
    unitInput.prop('disabled', true);

    // Clear radio button selection
    scopeRadios.parent().removeClass('active');
    scopeRadios.prop('checked', false);

    // Reset category and source select elements
    categorySelect.empty().append(new Option("Välj kategori", "", true, true)).prop('disabled', true);
    sourceSelect.empty().append(new Option("Välj källa", "", true, true)).prop('disabled', true);
}

function onScopeChange() {
    categorySelect.prop('disabled', false);
    let selectedScope = $(this).val();
    let categories = [...new Set(data.filter(item => item.scope == selectedScope).map(item => item.category))];
    categorySelect.empty().append(new Option("Välj kategori", "", true, true));
    categories.forEach(category => {
        categorySelect.append(new Option(category, category));
    });
}

function onCategoryChange() {
    if($(this).val() !== "") {
        sourceSelect.empty();
        sourceSelect.append(new Option("Välj källa", "", true, true)).prop('disabled', false);
        let selectedScope = $('input[name="scope"]:checked').val();
        let selectedCategory = $(this).val();
        let sources = [...new Set(data.filter(item => item.scope == selectedScope && item.category == selectedCategory).map(item => item.source))];
        sources.forEach(source => {
            sourceSelect.append(new Option(source, source));
        });
    }
}

// Remaining functions for onSourceChange, onUnitInputChange, onCommentKeyUp, onSubmitClick and onClearClick go here