【发布时间】:2020-03-14 06:49:57
【问题描述】:
我正在制作一个清单表单,目前我可以将所选框的值附加到 url,我觉得这种方式效率低下,主要问题是复选框的状态也没有保存,所以用户看不到他们检查或取消检查的内容。
这是html代码
<form id="carForm" method="get">
<label>BMW</label>
<input type="checkbox" value="bmw" onChange="checkboxChanged()">
<label>mercedes</label>
<input type="checkbox" value="mercedes" onChange="checkboxChanged()">
<label>honda</label>
<input type="checkbox" value="honda" onChange="checkboxChanged()">
<label>toyota</label>
<input type="checkbox" value="toyota" onChange="checkboxChanged()">
</form>
这是制作网址的脚本
let form = document.getElementById("carForm")
let checkboxes = document.getElementsByTagName("input")
var vals = "";
let formSubmit = () => {
for (var i=0, n=checkboxes.length;i<n;i++)
{
if (checkboxes[i].checked)
{
vals = checkboxes[i].value
// append checkbox values to url
var url = window.location.href;
if (url.indexOf('?') > -1){
// if a paramter already exists, append using
url += `&make=${vals}`
}else{
url += `?make=${vals}`
}
window.location.href = url;
}
console.log(vals);
}
}
function checkboxChanged() {
formSubmit()
}
</script>
例如,如果选择了起亚和本田,则 url 将是
/inventory?make=kia&make=honda
因此,如果效率低下,有什么更好的方法,以及如何确保在重新加载页面后复选框状态保持不变我在服务器端使用 nodejs/expressjs 和 ejs p>
【问题讨论】:
标签: javascript html node.js forms http