带有复选框的JavaScript操作
我有一组复选框,当选中或取消选中复选框时,我需要一个局部变量“address”,该变量包含复选框的值,但采用我的格式。 样本: 如果我选择 第1组-vl1和vl3 第2组-vl1 第3组-vl1、vl2和vl3带有复选框的JavaScript操作,javascript,html,checkbox,Javascript,Html,Checkbox,我有一组复选框,当选中或取消选中复选框时,我需要一个局部变量“address”,该变量包含复选框的值,但采用我的格式。 样本: 如果我选择 第1组-vl1和vl3 第2组-vl1 第3组-vl1、vl2和vl3 http://localhost/?param=1 &cb[gr1]=vl1-vl3 &cb[gr2]=vl1 &cb[gr3]=vl1-vl2-vl3 如何在Java脚本中创造这样的奇迹 这是html的来源 <form action="form.php"
http://localhost/?param=1
&cb[gr1]=vl1-vl3
&cb[gr2]=vl1
&cb[gr3]=vl1-vl2-vl3
如何在Java脚本中创造这样的奇迹
这是html的来源
<form action="form.php" method="post">
<fieldset>
<legend>Group 1</legend>
<input type="checkbox" name="gr1[]" value="vl1"/>value 1<br/>
<input type="checkbox" name="gr1[]" value="vl2"/>value 2<br/>
<input type="checkbox" name="gr1[]" value="vl3"/>value 3<br/>
</fieldset>
<fieldset>
<legend>Group 2</legend>
<input type="checkbox" name="gr2[]" value="vl1"/>value 1<br/>
<input type="checkbox" name="gr2[]" value="vl2"/>value 2<br/>
</fieldset>
<fieldset>
<legend>Group 3</legend>
<input type="checkbox" name="gr3[]" value="vl1"/>value 1<br/>
<input type="checkbox" name="gr3[]" value="vl2"/>value 2<br/>
<input type="checkbox" name="gr3[]" value="vl3"/>value 3<br/>
</fieldset>
</form>
第一组
值1
值2
值3
第2组
值1
值2
第3组
值1
值2
值3
要解决此问题,您需要获取参数,然后检查参数所需的值依赖性,请检查以下示例:
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = "param=1&cb[gr1]=vl1-vl3&cb[gr2]=vl1&cb[gr3]=vl1-vl2-vl3",//window.location.search.substring(1),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
}
}
};
var paramNum = getUrlParameter('param');
var paramGr = getUrlParameter('cb[gr' + paramNum + ']');
var paramGrSplit = paramGr.split('-');
var valueString = '';
for(var i = 0; i < paramGrSplit.length; i++){
$("input[value=" + paramGrSplit[i] + "]").prop('checked', true);
}
var getUrlParameter=函数getUrlParameter(sParam){
var sPageURL=“param=1&cb[gr1]=vl1-vl3&cb[gr2]=vl1&cb[gr3]=vl1-vl2-vl3”,//window.location.search.substring(1),
sURLVariables=sPageURL.split(“&”),
sParameterName,
我
对于(i=0;i
当您有类似的问题时,您需要将问题减去sub,然后为每个sub创建代码,这将有助于您将来解决类似的问题 要解决此问题,您需要获取参数,然后检查参数所需的值依赖性,请检查以下示例:
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = "param=1&cb[gr1]=vl1-vl3&cb[gr2]=vl1&cb[gr3]=vl1-vl2-vl3",//window.location.search.substring(1),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
}
}
};
var paramNum = getUrlParameter('param');
var paramGr = getUrlParameter('cb[gr' + paramNum + ']');
var paramGrSplit = paramGr.split('-');
var valueString = '';
for(var i = 0; i < paramGrSplit.length; i++){
$("input[value=" + paramGrSplit[i] + "]").prop('checked', true);
}
var getUrlParameter=函数getUrlParameter(sParam){
var sPageURL=“param=1&cb[gr1]=vl1-vl3&cb[gr2]=vl1&cb[gr3]=vl1-vl2-vl3”,//window.location.search.substring(1),
sURLVariables=sPageURL.split(“&”),
sParameterName,
我
对于(i=0;i
当您有类似的问题时,您需要将问题减去sub,然后为每个sub创建代码,这将有助于您将来解决类似的问题 要在客户端获取这些字符串,请执行以下操作:
[…document.querySelectorAll('fieldset')].forEach(函数(fs){
fs.addEventListener('change',函数(事件){
让checkedValues=[…this.querySelectorAll(':checked')].map(cb=>cb.value).join('-'))
窗口[this.dataset.group].textContent=checkedValues
})
})
字段集{
浮动:左;
宽度:27%;
}
第一组
值1
值2
值3
第2组
值1
值2
第3组
值1
值2
值3
第一组:
第2组:
第3组:
要在客户端获取这些字符串,请执行以下操作:
[…document.querySelectorAll('fieldset')].forEach(函数(fs){
fs.addEventListener('change',函数(事件){
让checkedValues=[…this.querySelectorAll(':checked')].map(cb=>cb.value).join('-'))
窗口[this.dataset.group].textContent=checkedValues
})
})
字段集{
浮动:左;
宽度:27%;
}
第一组
值1
值2
值3
第2组
值1
值2
第3组
值1
值2
值3
第一组:
第2组:
第三组:
请将您的代码从小提琴移到此网站本身。我希望您知道POST请求实际上发送的是正文中的数据,而不是查询参数中的数据。如果是,并且您知道自己在做什么,那么您必须自己处理数据发送过程:截取表单提交、构造主体和查询、发送数据。在第二步(构造查询)中,将所有选中的复选框排列在一个字段集中,并连接它们的值,就是这样。我想在我的字符串格式中使用参数设置本地JS字符串变量我的解决方案,但有问题,请将您的代码从FIDLE移动到此网站本身。我希望您知道POST请求实际上在正文中发送数据,而不是在查询参数中。如果是,并且您知道自己在做什么,那么您必须自己处理数据发送过程:截取表单提交、构造主体和查询、发送数据。在第二步(构造查询)中,将所有选中的复选框排列在一个字段集中,并连接它们的值,就是这样。我想在我的字符串格式中用参数设置本地JS字符串变量我的解决方案,但问题是没有GET,没有POST,没有地址位置。我需要更改实时(onClick)本地字符串变量示例:如果我选中了gr1-vl1,那么$my_var=“cb[gr1]=vl1”。如果取消勾选,则$my_var=“”否。无获取,无发布,无地址位置。我需要更改实时(onClick)本地字符串变量示例:如果我选中了gr1-vl1,那么$my_var=“cb[gr1]=vl1”。如果取消勾选,则$my_var=”“哇。此超级ES6解决方案,但在旧浏览器中不起作用:(易于调整到ES5。您想要ES5?请帮助,为什么我的对象中存在“未定义”值?请参见Wow。此超级ES6解决方案,但在旧浏览器中不起作用:(易于调整到ES5。您想要ES5?请帮助,为什么我的对象中存在“未定义”值?请参见