Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JS获取单选按钮值数组_Javascript_Arrays_Forms - Fatal编程技术网

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
  • 如果需要,可用(或预期)组名(如
    按钮组(A
    )可以通过soap接口加载

JavaScript数组有数字键,因此
数组(“按钮组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);
}