单击表格行时,行文本会复制到上面的输入以进行编辑。文本复制得很好,但我无法正确选择所有选项。我的文本与值不同(对于每个选择,它都是第三列),所以我不能使用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());
}
});
答案 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);
});
答案 1 :(得分:0)
只需更新选择值的值即可反映来自点击的文字(即cir
到circle
,sq
到square
,并且效果很好。
http://jsfiddle.net/7vLdxddr/10/
您的代码尝试执行的操作是选择值为circle
的输入,但circle
字段的值为cir
,因此未正确选择。