我想创建一个JavaScript函数,它可以在按下按钮后获取复选框元素列表及其内容,勾选所有复选框,创建一个包含这些复选框的div元素,并将结果写入HTML表单。
以下是我的代码:
这里是带有复选框元素列表的HTML Div元素。它们也会动态出现。最初,Div为空。
这是一个 HTML 表单,我希望我的结果出现在这里:
这里的问题是它选中了列表中所有的复选框,但在生成的
以下是我的代码:
function confirmDrivers() {
$('#selectedList').find('.chk').prop("checked", true);
var list = document.getElementById('selectedList').getElementsByTagName("li");
var myForm = document.getElementById('formInput');
var text = "<strong>Selected Drivers: </strong> <br><br>";
var myDiv = document.createElement("div");
myDiv.setAttribute("id","selectedInputDrivers");
myDiv.style.overflowY = "auto";
myDiv.style.maxHeight = "100px";
myDiv.style.maxWidth = "250px";
for (i = list.length - 1; i >= 0; i--) {
myDiv.innerHTML = list[i].innerHTML+'<br>'+myDiv.innerHTML;
}
$("formInput").find('.chk').prop("checked", true);
myForm.innerHTML = myDiv.outerHTML + myForm.innerHTML;
myForm.innerHTML = text + myForm.innerHTML;
}
这里是带有复选框元素列表的HTML Div元素。它们也会动态出现。最初,Div为空。
<div id = "selectedList" class = "col" style=" max-height:200px; max-width:500px;display: inline-block; background:#A8D9F1; overflow-y:auto">
<strong style="margin-right:10px">Selected List of Drivers</strong>
<input type="button" style="margin-right:10px" value="Remove All" name="removeAllDr" onclick="removeAllDrivers()" />
<input type="button" id="confirmD" value="Confirm" name="confirm" onclick="confirmDrivers()" />
<br><br>
</div>
这是一个 HTML 表单,我希望我的结果出现在这里:
<form id="formInput">
</form>
这里的问题是它选中了列表中所有的复选框,但在生成的
HTML
表单中,它们又变成未选中状态。有什么问题吗?谢谢。
.prop()
不会更改复选框的HTML,它只会更改其当前状态。你可以尝试使用.attr()
,但我不确定这是否有效。 - Rik LewissetAttribute("id","selectedInputDrivers")
会导致重复的ID
,而ID
应该是唯一的。如果你正在使用document.createElement()
来创建复选框,那么可以使用setAttribute("checked","checked")
。 - NewToJS.attr()
解决了这个问题。谢谢,Rik Lewis :) - FalseScience