Javascript html表中的下拉项未在行中选择正确的值

Javascript html表中的下拉项未在行中选择正确的值,javascript,jquery,Javascript,Jquery,我有一个表格,用户可以在其中选择行,并可以在表格的标题中进行编辑。问题是,当他们选择行并更改值时;例如,类别。当第一次编辑行并单击更新时,它将相应地更改。但当他们为类别或任何其他下拉列表选择另一个值时。他们无法将其从以前的值更改回原来的值 这是我的代码片段,不要介意背景颜色 var opt = $("#Category_h option:selected").val(); $('#' + dataTR).find('td[data-attr=Category]').find("

我有一个表格,用户可以在其中选择行,并可以在表格的标题中进行编辑。问题是,当他们选择行并更改值时;例如,类别。当第一次编辑行并单击更新时,它将相应地更改。但当他们为类别或任何其他下拉列表选择另一个值时。他们无法将其从以前的值更改回原来的值

这是我的代码片段,不要介意背景颜色

    var opt = $("#Category_h option:selected").val(); 
    $('#' + dataTR).find('td[data-attr=Category]').find("#Category option[value='" + opt + "']").attr("selected", true);
    if ($("#" + dataTR).find('td[data-attr=Category]').css('background-color') == 'rgb(255, 0, 0)') {
        if (opt != '') {
            $("#" + dataTR).find('td[data-attr=Category]').css('background-color', '');
        }
    }
这是我的全部代码:


谢谢

代码的问题在于您使用的是attr方法,它选择了选项,但您没有取消选择,因此它停止工作。您可以使用下面修改过的代码段使事情正常进行

$("input[name='Update']").click(function () {

        if ($(this).attr("data-tr") == "-1") { return; };
        var dataTR = $(this).attr("data-tr");
        dataTR = dataTR.trim();
        var customer_model; 

        var opt = $("#Category_h option:selected").val(); 
        console.log(opt);
        $('#' + dataTR).find('td[data-attr=Category]').find("#Category").val(opt);
        if ($("#" + dataTR).find('td[data-attr=Category]').css('background-color') == 'rgb(255, 0, 0)') {
            if (opt != '') {
                $("#" + dataTR).find('td[data-attr=Category]').css('background-color', '');
            }
        }
        var tax = $("#Tax_rule_h option:selected").val();
        $('#' + dataTR).find('td[data-attr=Tax_rule]').find("#Tax_rule").val(tax);
        if ($("#" + dataTR).find('td[data-attr=Tax_rule]').css('background-color') == 'rgb(255, 0, 0)') {
            if (tax != '') {
                $("#" + dataTR).find('td[data-attr=Tax_rule]').css('background-color', '');
            }
        }
        var term = $("#Payment_term_h option:selected").val();
        $('#' + dataTR).find('td[data-attr=Payment_term]').find("#Payment_term").val(term);
        if ($("#" + dataTR).find('td[data-attr=Payment_term]').css('background-color') == 'rgb(255, 0, 0)') {
            if (term != '') {
                $("#" + dataTR).find('td[data-attr=Payment_term]').css('background-color', '');
            }
        }

        //BTG v.1.0.0.3
        var curr = $("#Currency_h option:selected").val();
        $('#' + dataTR).find('td[data-attr=Currency]').find("#Currency").val(curr);
        console.log(curr);
        if ($("#" + dataTR).find('td[data-attr=Currency]').css('background-color') == 'rgb(255, 0, 0)') {
            if (curr != '') {
                $("#" + dataTR).find('td[data-attr=Currency]').css('background-color', '');
            }
        } 

    });

希望这将对您有所帮助

代码的问题在于您使用的是attr方法,它选择了选项,但您没有取消选择,因此它停止工作。您可以使用下面修改过的代码段使事情正常进行

$("input[name='Update']").click(function () {

        if ($(this).attr("data-tr") == "-1") { return; };
        var dataTR = $(this).attr("data-tr");
        dataTR = dataTR.trim();
        var customer_model; 

        var opt = $("#Category_h option:selected").val(); 
        console.log(opt);
        $('#' + dataTR).find('td[data-attr=Category]').find("#Category").val(opt);
        if ($("#" + dataTR).find('td[data-attr=Category]').css('background-color') == 'rgb(255, 0, 0)') {
            if (opt != '') {
                $("#" + dataTR).find('td[data-attr=Category]').css('background-color', '');
            }
        }
        var tax = $("#Tax_rule_h option:selected").val();
        $('#' + dataTR).find('td[data-attr=Tax_rule]').find("#Tax_rule").val(tax);
        if ($("#" + dataTR).find('td[data-attr=Tax_rule]').css('background-color') == 'rgb(255, 0, 0)') {
            if (tax != '') {
                $("#" + dataTR).find('td[data-attr=Tax_rule]').css('background-color', '');
            }
        }
        var term = $("#Payment_term_h option:selected").val();
        $('#' + dataTR).find('td[data-attr=Payment_term]').find("#Payment_term").val(term);
        if ($("#" + dataTR).find('td[data-attr=Payment_term]').css('background-color') == 'rgb(255, 0, 0)') {
            if (term != '') {
                $("#" + dataTR).find('td[data-attr=Payment_term]').css('background-color', '');
            }
        }

        //BTG v.1.0.0.3
        var curr = $("#Currency_h option:selected").val();
        $('#' + dataTR).find('td[data-attr=Currency]').find("#Currency").val(curr);
        console.log(curr);
        if ($("#" + dataTR).find('td[data-attr=Currency]').css('background-color') == 'rgb(255, 0, 0)') {
            if (curr != '') {
                $("#" + dataTR).find('td[data-attr=Currency]').css('background-color', '');
            }
        } 

    });
希望这对你有帮助