Разве IE 8 не поддерживает нажатие?

Я пытаюсь вставить пару ключ/значение в serializeArray (из jQuery).

Таким образом, у меня есть что-то как

var form = $('#form');
var sendFormData = form.serializeArray();
sendFormData.push({ "name": "Name", "value": "test"});

В Firefox это работает все же в IE 8, который я получаю

Строка: 51 Ошибка: Объект не поддерживает это свойство или метод

Таким образом, это, кажется, указывает на эту строку. Делает т.е. 8 не поддерживают нажатие раз так, что является способом, которым я могу добавить пару ключ/значение, которая будет работать во всех браузерах (5 Firefox электросети, ie8, хром, опера, сафари)

6
задан chobo2 18 July 2010 в 20:01
поделиться

4 ответа

То, что у вас есть, работает (даже в IE8), вы можете протестировать это здесь: http://jsfiddle.net/ZAxzQ/

Должно быть что-то помимо вопроса, что вы делаете, чтобы получить это error:)

.push () существует столько же, сколько и объект Array , я никогда не видел браузера, который не поддерживает его .. . ваша неподдерживаемая ошибка имеет , чтобы быть вызванной чем-то другим.

11
ответ дан 8 December 2019 в 17:18
поделиться

Это не исчерпывающий ответ, так как он не решит вашу проблему, но Array. push() метод работает в IE8:

var arr = [];
arr.push({ "name": "Test Name", "value": "Test Value"});
alert(arr[0].name);    // Displays "Test Name"

Вышеприведенное можно также переписать следующим образом:

var arr = [];
arr[arr.length] = { "name": "Test Name", "value": "Test Value"};
alert(arr[0].name);    // Displays "Test Name"
1
ответ дан 8 December 2019 в 17:18
поделиться

Конечно, простейшее другое решение - это сделать что-то вроде этого:

var sendFormData = $("#form").append("<input id='someuniqueID' type='hidden' name='name' value='test' />").serializeArray();
$("#someuniqueID").remove(); //optional could keep it in there if you wanted
0
ответ дан 8 December 2019 в 17:18
поделиться

У меня нет доступа к банкомату IE, но я уверен, что он поддерживает push. Убедитесь, что sendFormData считается массивом:

Object.prototype.toString.call(sendFormData) === '[object Array]';

IE любит делать еще кое-что, это сообщать вам об ошибке в строке после того, как произошла ошибка, поэтому он может быть частью строки form.serializeArray ().

1
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: