Javascript函数为简单名称返回字符串,为输入标记的数组名称返回数组

Javascript函数为简单名称返回字符串,为输入标记的数组名称返回数组,javascript,jquery,ajax,arrays,forms,Javascript,Jquery,Ajax,Arrays,Forms,我有myGetValue()javascript函数来获取任何输入标记的值。输入标记的值和名称用于ajax(请参见sendField()function)。我只想发送一个字段(不是所有表单),不想使用json function myGetValue(fieldName) { var regex = new RegExp('^'+fieldName+'($|\\[\\]$)', 'i'); var value = $('input[name^="' + fieldName + '"

我有
myGetValue()
javascript函数来获取任何输入标记的值。输入标记的值和名称用于ajax(请参见
sendField()
function)。我只想发送一个字段(不是所有表单),不想使用json

function myGetValue(fieldName) {
    var regex = new RegExp('^'+fieldName+'($|\\[\\]$)', 'i');
    var value = $('input[name^="' + fieldName + '"]').filter(function(){
        return regex.test(this.name)
    }).filter(':checked, :not([type="checkbox"])').map(function () {
        return this.value
    }).get();
    return value;
}

function sendField(fieldName){
    var formaData = new FormData();
    var fieldValue = myGetValue(fieldName); //for 'arrayname' field name it returns string, but it is needed to return array of checked values.
    formaData.append(fieldName, fieldValue);
    $.ajax({
        type: 'POST',
        data: formaData,
        processData: false,
        contentType: false,
    });
}
myGetValue()
函数适用于任何名称为“simplename”且不带方括号的字段。你可以看到一个例子。对于具有方括号的名称,函数的工作方式不正确,因为它也返回字符串。它需要一个校验值数组,而不是一个字符串。例如,现在'arrayname'的
myGetValue()
函数返回类似'1,2'或'1,2,3,4'的字符串,但我需要数组,因为我需要在$\u POST中使用数组:

["arrayname"]=>
    array(2) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
}
请帮助我修改函数myGetValue(),以便将ajax请求发送到服务器时,“arrayname”中的值是检查值数组


myGetValue()
已返回数组。当您
alert(array)
时,它会调用
array.toString()
,从而调用您看到的字符串。否。我做过测试,在$u POST中我总是得到字符串:'arrayname'=>string(3)“1,2”或类似的东西。问题出在
myGetValue()
try
fieldValue=JSON.stringify(myGetValue(fieldName))
和PHP:
arr=JSON\u decode($\u POST['data']['arrayname'))
我不需要JSON。我拥有没有json的东西。使用json是多余的。