gpt4 book ai didi

javascript - 使用 JavaScript 在 Html 中动态添加单选和下拉列表并返回数据

转载 作者:行者123 更新时间:2023-12-01 00:37:17 25 4
gpt4 key购买 nike

我正在创建一个 Google WebApp,其中我从电子表格中收集了一个一维数组。

现在的挑战部分是创建一个单选按钮和 dropdownList,其中包含 HTML 中该数组的计数,并将用户输入拉回到电子表格中。

这是我到目前为止所做的:-

HTML --->

<!DOCTYPE html>
<html>
<head>
<base target="_top">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<?!= include('page-css'); ?>
</head>
<body>
<form id="myform">
<table class="striped" width="100">
<thead>
<tr>
<th>Agent</th>
<th>S1</th>
<th>S2</th>
<th>S3</th>
<th>Weekoff-1</th>
<th>Weekoff-2</th>
</tr>
</thead>
<tbody id="perf"></tbody>
</table>
<input type="submit"/>
</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<?!= include('roster-js'); ?>
</body>
</html>

最后我需要 JavaScript 前端方面的帮助:->

<script>
document.addEventListener('DOMContentLoaded', function(){

google.script.run.withSuccessHandler(getRosterData).loadRoster();
//getTable1Data(data);
});


function getRosterData(dataArray) {

let weeksArray = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];

let tbody = document.getElementById("perf");

dataArray.forEach(function(ele) {
// creating row element for each agent
const tableRow = document.createElement("tr");

// create td elements
var agentTD = document.createElement("td");
agentTD.setAttribute("id", "agent"+ ele);
var t = document.createTextNode(ele);
agentTD.appendChild(t);

// create td elements with unique ids
var s1TD = document.createElement("td");
s1TD.appendChild(createRadioButton( "s1-" + ele));

// create td elements with unique ids
var s2TD = document.createElement("td");
s2TD.appendChild(createRadioButton( "s2-" + ele));

// create td elements with unique ids
var s3TD = document.createElement("td");
s3TD.appendChild(createRadioButton( "s3-" + ele));

// create td elements with unique ids
var w1TD = document.createElement("td");
w1TD.appendChild(createDropdown("w1-" + ele));

// create td elements with unique ids
var w2TD = document.createElement("td");
w2TD.appendChild(createDropdown("w2-" + ele));

// append td to table row
tableRow.appendChild(agentTD);
tableRow.appendChild(s1TD);
tableRow.appendChild(s2TD);
tableRow.appendChild(s3TD);
tableRow.appendChild(s3TD);
tableRow.appendChild(w1TD);
tableRow.appendChild(w2TD);

tbody.appendChild(tableRow);
});

function createRadioButton(id) {
//create a radio button
var radio = document.createElement("input");
radio.setAttribute("type", "radio");
radio.setAttribute("id", id);
return radio;
}

function createDropdown(id) {
//create a radio button
var fragment = document.createDocumentFragment();
var select = document.createElement('select');
select.setAttribute("id", id);
weeksArray.forEach(function (day) {
select.options.add( new Option(day, day));
});
fragment.appendChild(select);
return fragment;
}

document.getElementById("myform")
}

</script>

这个问题太大了。无论如何,现在我需要帮助来填充一个 html 页面,其中包含我从 Google 电子表格收集的名称列表,并同时分别添加 3 个单选按钮和一个下拉列表。如果用户提交表单,最后捕获数据。如果需要更多说明,请告诉我。

这是现在的结果:-

Out Come

最佳答案

这可以使用文档片段来完成。你可以在这里读更多关于它的内容: Document Fragments

例如创建列表:

function getRosterData(dataArray) {
let tbody = document.getElementById('perf');

var fragment = document.createDocumentFragment(),
select = document.createElement('select');

dataArray.forEach(function(r) {
select.addChild(r, r);
}
}

Options用于为下拉列表创建选项。

同样,您可以使用 document.createElement() 创建具有一些唯一 ID 的单选按钮,稍后您可以在提交数据时使用这些单选按钮来捕获数据。

Codepen:我创建了一个小codepen来帮助解决这个问题:可以在这里查看Codepen Link

关于javascript - 使用 JavaScript 在 Html 中动态添加单选和下拉列表并返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58017280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com