编辑Select选项遵循第一行中Select选项的值

时间:2014-01-23 02:21:35

标签: javascript jquery combobox html-table

这是此链接的后续问题。 How can I return the data in select option

我发现这个问题的答案是有效的。如果您尝试一次编辑一行,程序运行正常。但是,我尝试在编辑模式下创建第一行,在编辑时尝试另一行。如果我将性别从男性更改并保存到女性,并且第一行仍具有值Male,则该行的保存值仍为男性。希望这看起来不那么复杂。这是问题答案的小提琴如何在select选项中返回数据。 http://jsfiddle.net/srvikram13/te2wF/35/

 function Save() {

        var value3 = $(".gender").attr('value');
        var par = $(this).parent().parent();
        var tdName = par.children("td:nth-child(1)");
        var tdAge = par.children("td:nth-child(2)");
        var tdGender = par.children("td:nth-child(3)");
        var tdButtons = par.children("td:nth-child(4)");

        tdName.html(tdName.children("input[type=text]").val());
        tdAge.html(tdAge.children("input[type=text]").val());
        tdGender.html(value3);
        tdButtons.html("<input type='button' value='Edit' class='btnEdit'/><input type ='button' value='Delete' class='btnDelete'/>");
        $(".btnSave").bind("click", Save);  

        $(".btnDelete").bind("click", Delete);

    };

1 个答案:

答案 0 :(得分:0)

您总是在当前行中读取第一个选择元素的值,而不是性别

tdGender.html(tdGender.children('select').val());

演示:Fiddle

注意:要从后代元素而不是$(this).parent().parent()获取tr元素,请使用var par = $(this).closest('tr')