html表中的下拉项未在行

时间:2019-05-08 06:37:07

标签: javascript jquery

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

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

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

这是我的完整代码:Sample Code

谢谢

1 个答案:

答案 0 :(得分:0)

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

    });

希望这会对您有所帮助