Javascript 使用JS获取单选按钮值数组
假设我有一张这样的表格:Javascript 使用JS获取单选按钮值数组,javascript,arrays,forms,Javascript,Arrays,Forms,假设我有一张这样的表格: <form id="formid" action="?a=do" method="POST" onChange="doSomething();> <input type="radio" name="buttonGroup_A[1]" value="1"> <input type="radio" name="buttonGroup_A[1]" value="3"> <input type="radio" n
<form id="formid" action="?a=do" method="POST" onChange="doSomething();>
<input type="radio" name="buttonGroup_A[1]" value="1">
<input type="radio" name="buttonGroup_A[1]" value="3">
<input type="radio" name="buttonGroup_A[1]" value="2">
<input type="radio" name="buttonGroup_A[2]" value="1">
<input type="radio" name="buttonGroup_A[2]" value="3">
<input type="radio" name="buttonGroup_A[2]" value="2">
<input type="radio" name="buttonGroup_B[1]" value="1">
<input type="radio" name="buttonGroup_B[1]" value="3">
<input type="radio" name="buttonGroup_B[1]" value="2">
<input type="radio" name="buttonGroup_B[2]" value="1">
<input type="radio" name="buttonGroup_B[2]" value="3">
<input type="radio" name="buttonGroup_B[2]" value="2">
<input type="radio" name="buttonGroup_B[3]" value="1">
<input type="radio" name="buttonGroup_B[3]" value="3">
<input type="radio" name="buttonGroup_B[3]" value="2">
</form>
我基本上要找的是doSomething()函数
旁注:
- 按钮组的索引是实体的UID
- 如果需要,可用(或预期)组名(如
)可以通过soap接口加载按钮组(A
数组(“按钮组A”…
永远不会工作
这是我为填充对象而想到的:
function doSomething(oEvent) {
var resultObj = {};
var radios = $('input[type="radio"]', $('#formid'));
// Parse group/uid regex
var regex = /(.*)\[(\d+)\]/;
// Get all the radios
for(var i=0; i<radios.length; i++) {
var radio = $(radios[i]);
// If this isn't checked, skip it
if(radio.is(':checked') === false) { continue; }
var results = radio.attr('name').match(regex);
if(results) {
var group = results[1];
var uid = results[2];
// add the group/values
if (typeof resultObj[group] === 'undefined') {
resultObj[group] = [];
}
resultObj[group][uid] = radio.val();
}
}
console.log(resultObj);
}
功能剂量仪(oEvent){
var resultObj={};
变量无线电=$('input[type=“radio”],$('formid');
//解析组/uid正则表达式
var regex=/(.*)\[(\d+)\]/;
//把所有的收音机都拿来
对于(var i=0;i
函数doSomething(){
var结果=[];
var regex=/[\[\]]/;
var form=document.getElementById('formid');
var inputs=form.getElementsByTagName(“输入”);
对于(i=0;i
(与使用包含数组的对象不同,我更喜欢使用100%的对象:))这正是我想要的。谢谢。我改变了一些想法,例如选择器:$(“#首选项:radio:checked”);
function doSomething() {
var resultArray;
// Clever magic happens here
return resultArray;
}
function doSomething(oEvent) {
var resultObj = {};
var radios = $('input[type="radio"]', $('#formid'));
// Parse group/uid regex
var regex = /(.*)\[(\d+)\]/;
// Get all the radios
for(var i=0; i<radios.length; i++) {
var radio = $(radios[i]);
// If this isn't checked, skip it
if(radio.is(':checked') === false) { continue; }
var results = radio.attr('name').match(regex);
if(results) {
var group = results[1];
var uid = results[2];
// add the group/values
if (typeof resultObj[group] === 'undefined') {
resultObj[group] = [];
}
resultObj[group][uid] = radio.val();
}
}
console.log(resultObj);
}