属性选择选项按文字而不是值?

时间:2014-09-18 19:22:13

标签: javascript jquery dynamic drop-down-menu attributes

单击表格行时,行文本会复制到上面的输入以进行编辑。文本复制得很好,但我无法正确选择所有选项。我的文本与值不同(对于每个选择,它都是第三列),所以我不能使用select的.val()。

我需要在文本与文本开头匹配时选择属性/ prop,以及是否可以报销(第三列)。想法? jsfiddle.net/7vLdxddr/14

$('.table').on('click', 'tr', function () {

                if ($(this).hasClass('selected')) {
                    $(this).removeClass('selected');
                }
                else {
                    $('tr.selected').removeClass('selected');
                    $(this).addClass('selected');
                }

                for (var i = 0; i < $(this).find("td").length; i++) {
                    // fill input values
                    $(this).closest("table").find("th").eq(i).find("input:text").val($(this).find("td").eq(i).text());
                    // fill selects
                    $(this).closest("table").find("th").eq(i).find("select").val($(this).find("td").eq(i).text());
                }
            });

2 个答案:

答案 0 :(得分:1)

如果您喜欢这样,则不需要具有与文本相等的值。

    $('table').on('click', 'tr', function () {
        if ($(this).hasClass('selected')) {
            $(this).removeClass('selected');
        }
        else {
            $('tr.selected').removeClass('selected');
            $(this).addClass('selected');
        }

    // fill inputs
    $(this).closest("table").find("th").eq(0).find("input:text").val($(this).find("td").eq(0).text());

    // fill selects      
   var text = $(this).find("td").eq(1).text();
   var text3 = $(this).find("td").eq(2).text();

   $(this).closest("table").find("th").eq(1).find("select option").filter(function() {
    return $(this).text().indexOf(text) >= 0 && $(this).text().indexOf($(this).closest("table").find("th").eq(2).find('select option[value="' + text3 + '"]').text()) > 0;
}).prop('selected', true);        

   $(this).closest("table").find("th").eq(2).find('select').val(text3);

});

http://jsfiddle.net/7vLdxddr/15/

答案 1 :(得分:0)

只需更新选择值的值即可反映来自点击的文字(即circirclesqsquare,并且效果很好。

http://jsfiddle.net/7vLdxddr/10/

您的代码尝试执行的操作是选择值为circle的输入,但circle字段的值为cir,因此未正确选择。