我有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'就是检查值的数组。