如何在表格下拉列表中填充未选择的下拉选项?以及如何在阵列控制台中获取所有值?
我尝试过,但是对此我一点儿挣扎
注意:未选择的选项仅显示在表格下拉列表中
这是我的示例代码。
var status;
var sno = [];
var load;
var no_rows = 0;
var row;
var mainArr = [];
var tmpArr = [];
function loadValues() {
var mainTable = $('#tablemain');
var tr = mainTable.find('tbody tr');
console.log(tr.length)
tr.each(function() {
tmpArr = [];
$(this).find('td').each(function() {
var values = $(this).find('input, select').val();
tmpArr.push(values);
});
mainArr.push(tmpArr);
});
console.log(mainArr);
}
$(document).ready(function() {
$(".add-row").click(function() {
row = "<tr id=tasklist><td>" + "<input type=text class=sno></input>" + "</td><td>" + "<input type=text class=pname></input>" + "</td><td>" + "<input type=text class=task></input>" + "</td><td>" + "<input type=text class=date></input>" + "</td><td>" + "<select class=status id=dropdown2 name=dropdown2><option >Not Started</option></select>" + "</td><td>" + "<input type=text class=comment></input>" + "</td></tr>";
$("table > tbody").append(row);
$('.date').datepicker();
// $('.sno').css("background-color","blue");
$("select").change(function() {
status = $(this).find('option:selected').text();
if (status === "In progress") {
$(this).css("background-color", "#a1a1ff");
//$('.task').addClass("blue");
}
if (status === "Finished") {
$(this).css("background-color", "#54c654");
//$('.task').addClass("green");
}
if (status === "Not Started") {
$(this).css("background-color", "#F8F8F8");
//$('.task').addClass("white");
}
})
i++;
});
$('.load').click(function() {
loadValues();
});
});
$('select[name=dropdown1]').on('change', function() {
$("select[name=dropdown2]").find('option').show();
var from = $(this).find(":selected").val();
$("select[name=dropdown2]").val('');
if (form != "") {
$("select[name=dropdown2]").find('option:contains("' + form + '")').hide();
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div> First Dropdown:
<select class="status" id="dropdown1" name="dropdown1">
<option>Not Started</option>
<option>In progress</option>
<option>Finished</option>
</select>
</div>
<div>
<form>
<input type="button" class="add-row" value="Add Row">
<input type="button" class="load" value="Enter">
</form>
<table id='tablemain' class="table">
<thead>
<tr>
<th>SNo</th>
<th>Name</th>
<th>Assigned Task</th>
<th>Due Date</th>
<th>Status</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
注意:未选择的选项仅显示在表格下拉列表中
谢谢
答案 0 :(得分:1)
几乎没有错误。
更改列表:
删除未定义的抛出错误的i ++
更正了错字form
而不是from
在创建行时添加了选项。
在html和js中添加了选项值
使用字符串文字来创建行模板
基于值的隐藏选项。
https://jsfiddle.net/7yofb9u1/
(当dropdown-1最初具有一个值,然后在add row
上)
https://jsfiddle.net/oy30pL81/
注意:您为每行下拉列表使用了相同的ID。您可以为每个下拉列表创建唯一的ID,而不使用dropdown2
和/或添加类来为jquery选择器选择框。