Тема: Sumbit формы
Показать сообщение отдельно
  #4 (permalink)  
Старый 17.12.2013, 12:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Riddik
Т.е. в IE ниже 9ки работать не будет?
К сожалению в 9 работать тоже не будет. Только начиная с 10.
Если нужна кроссбраузерность, то у тебя два пути:
1) Подключить либу jQuery, там есть .serialize() и $.ajax()
2) Вместо FormData написать функцию сериализации в строку.
Функция выглядит примерно так:

function isSubmittable(control) {
    var element = control.nodeName.toLowerCase();
    if (['select', 'textarea', 'keygen'].indexOf(element) > -1)
        return true;
    if (element == 'input') {
        if (['submit', 'button', 'image', 'reset', 'file'].indexOf(control.type) > -1)
            return false;
        if (['checkbox', 'radio'].indexOf(control.type) > -1 && !control.checked)
            return false;
        return true;
    }
    return false;
}
    
function serialize(form) {
    var segments = [];
    for (var i = 0, control; control = form.elements[i]; i++) {
        if (!control.name || control.disabled || !isSubmittable(control))
            continue;
        segments.push(encodeURIComponent(control.name) + '=' + encodeURIComponent(control.value));
    }
    return segments.join('&');
}


Код особо не тестил.

К сожалению костыля для FormData найти не удалось..
__________________
В личку только с интересными предложениями

Последний раз редактировалось danik.js, 17.12.2013 в 14:55.
Ответить с цитированием