首页 > 解决方案 > html表中的下拉项未在行中选择正确的值

问题描述

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

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

    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', '');
        }
    }

这是我的整个代码:示例代码

谢谢

标签: javascriptjquery

解决方案


代码的问题是您正在使用 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', '');
            }
        } 

    });

希望对你有帮助


推荐阅读