Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
94
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
1228
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
1029
0
Очень долго работает Update запрос Oracle
27th January, 09:58
969
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
959
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
995
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1782
0
период по дням
25th October, 10:44
4001
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3775
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4661
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4442
0
Помогите пожалуйста решить задачи
24th November, 23:53
6159
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4393
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4442
0
Метода Крамера С++
23rd October, 11:55
4356
0
помогите решить задачу на C++
22nd October, 17:31
4040
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4533
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2643
0
Отправка булевых значений в запросах jQuery.ajax()
Просмотров: 311
 
Ответов: 5
$.ajax({
url : uri,
type : 'post',
data : {someBooleanVar1: false, subVar: {someBooleanVar2: true}}
});
Проблема в том, что сервер получит переменные someBooleanVar1 и someBooleanVar2 в виде строк «false» и «true», а не «0» и «1».
Вопрос в том, есть ли в jQuery какой-то параметр или метод автоматизирующий конвертацию булевых значений в 0/1? Ну или если средствами jQuery такое не реализовать, то можеть кто-нибудь знает простенький способ обойти рекурсивно объект заменив boolean на number.
Спасибо!
url : uri,
type : 'post',
data : {someBooleanVar1: false, subVar: {someBooleanVar2: true}}
});
Прошу прощения, пропустил вопрос про метод замены. Попробуйте так:
function bools2numbers(arr)
{
for(var i in arr)
{
var o = arr[i];
if(typeof o == 'object')
bools2numbers(arr[i]);
else if(typeof o == 'boolean')
arr[i] = o?1:0;
}
return arr;
}
Функция изменяет передаваемый массив. Если это не подходит — легко заменить на копирование.
function bools2numbers(arr)
{
for(var i in arr)
{
var o = arr[i];
if(typeof o == 'object')
bools2numbers(arr[i]);
else if(typeof o == 'boolean')
arr[i] = o?1:0;
}
return arr;
}
Есть следующий вариант с учётом некоторых очевидных ограничений (и наличия jQ 1.4+).
function bool2Int(obj) {
$.each(obj, function(i) {
if (typeof obj[i] == 'object') {
bool2Int(this);
}
else if (typeof obj[i] == 'boolean') {
obj[i] = +obj[i];
}
});
return obj;
}
$.ajaxSetup({
processData: false,
beforeSend: function(xhr, settings) {
settings.data = $.param(bool2Int(settings.data))
}
});
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться