javascript - 如何将未选择的值填充到表中的另一个下拉列表中?
问题描述
如何在表格下拉列表中填充未选择的下拉选项?以及如何在数组控制台中获取所有值?
我试过了,但我对此有点挣扎
注意:未选择的选项仅显示在表格下拉列表中
这是我的示例代码..
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>
注意:未选择的选项仅显示在表格下拉列表中
谢谢
解决方案
几乎没有错误。
变更清单:
删除引发错误未定义的 i++
改正
form
错字from
创建行时添加了选项。
在 html 和 js 中添加选项值
使用字符串文字创建行模板
根据值隐藏选项。
工作小提琴:
https://jsfiddle.net/7yofb9u1/
新小提琴:
(当 dropdown-1 最初有一个值时,然后 on add row
)
https://jsfiddle.net/oy30pL81/
注意:您为每一行下拉菜单使用相同的 id。您可以为每个下拉菜单创建唯一的 id,而不使用dropdown2
和/或添加一个类来选择 jquery 选择器的框。
推荐阅读
- lua - string.find 的检查表
- python - 搜索大型文本或日志文件 (10GB+)
- imagemagick - Elixir Imagemagick 重力偏移
- python - 如何使用 re 模块替换父文本中重复片段中的文本?
- azure-sql-database - Azure SQL 将“时区显示名称”转换为“时区 ID”
- django - Django中的可选用户列表?
- arduino - Arduino Pro Micro 未上传任何代码(avrdude:ser_open():无法打开设备“/dev/ttyACM0”:权限被拒绝)
- sql - 具有 6 个字符和通配符条件的 SQL 查询
- makefile - GNU 直接跳过链接
- xamarin.android - 升级 Xamarin.Azure.NotificationHubs.Android v1.1.4.1 后,Xamarin.Android 应用程序在使用 Firebase 启动时崩溃