Javascript函数返回simple-names的字符串,并返回输入标记的数组名称的数组

时间:2013-12-11 13:44:42

标签: javascript jquery ajax arrays forms

我有myGetValue() javascript函数来获取任何输入标记的值。输入标记的值和名称用于ajax(请参阅sendField()函数)。我想只发送一个字段(不是所有形式),我不想使用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'且不带方括号的任何字段。您可以看到示例here。对于具有方括号的名称,该函数不正确,因为它也返回一个字符串。需要一个已检查值的数组而不是字符串。例如,现在'arrayname'的myGetValue()函数返回类似'1,2'或'1,2,3,4'的字符串,但我需要数组,因为我需要$ _POST中的数组:

["arrayname"]=>
    array(2) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
}

帮助我修改函数myGetValue(),这样当ajax请求发送到服务器时,'arrayname'就是检查值的数组。

Live Example

0 个答案:

没有答案