![](/img/trans.png)
[英]get checkbox values from form and add to JSON string using JavaScript
[英]Javascript - Get checkbox values from a form and get a random result
我有一个允许多个复选框的表格。 我想在按下“生成”按钮时获得所有选中项目的随机值。
一方面,我具有以下形式:
<FORM NAME="testform">
<INPUT CLASS="cities" TYPE="checkbox" NAME="mex" Value="mex"checked="checked">México<BR>
<p><INPUT CLASS="cities" TYPE="checkbox" NAME="ita" Value="ita">Italy<BR>
<p><INPUT CLASS="cities" TYPE="checkbox" NAME="usa" Value="usa">United State of America<BR>
<p><INPUT TYPE="button" NAME="button" Value="Generate"
onClick="testButton"><BR>
</FORM>
但是我是JavaScript的新手,因此在构建此练习时需要帮助。
另一方面,我不知道如何获取表单值。 这些是每个复选框的随机元素。
var mex=["mexico-df.html","veracruz.html","acapulco.html"]
var ita=["roma.html","milan.html","venecia.html"]
var usa=["los-angeles.html","new-york.html","washington.html"]
我希望,例如,对墨西哥和美国进行检查时,结果应该只是上述变量中包含的那些之间的一个随机值。
我不确切地知道如何从表单中获取检查值,以及如何仅从所选项目中选择随机值。
您对我有什么建议吗?
抱歉,我的英语不太好。
如果我正确理解您的意思,那么您正在寻找以下内容:
function testButton() {
var mex=["mexico-df.html","veracruz.html","acapulco.html"];
var ita=["roma.html","milan.html","venecia.html"];
var usa=["los-angeles.html","new-york.html","washington.html"];
var allOptions = [];
var isMexChecked = document.getElementsByName("mex")[0].checked;
if (isMexChecked) {
allOptions = allOptions.concat(mex);
}
var isItaChecked = document.getElementsByName("ita")[0].checked;
if (isItaChecked) {
allOptions = allOptions.concat(ita);
}
var isUsaChecked = document.getElementsByName("usa")[0].checked;
if (isUsaChecked) {
allOptions = allOptions.concat(usa);
}
if (allOptions.length > 0) {
var random = Math.floor((Math.random() * allOptions.length));
console.log(allOptions[random]);
return allOptions[random];
}
}
只要确保您以以下形式附加JS处理程序正确性:
<INPUT TYPE="button" NAME="button" Value="Generate"
onClick="testButton()">
稍后,如果您对国家/地区有更多选择,则可能需要使内容更简洁:
var checkBoxNameToValuesMap = {
"mex" : mex,
"ita" : ita,
"usa" : usa
};
for (var checkBoxName in checkBoxNameToValuesMap) {
if (document.getElementsByName(checkBoxName)[0].checked) {
allOptions = allOptions.concat(checkBoxNameToValuesMap[checkBoxName]);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.