Кажется, по умолчанию отключенные элементы ввода игнорируются $.serialize()
. Есть ли обходной путь?
135
Кажется, по умолчанию отключенные элементы ввода игнорируются $.serialize()
. Есть ли обходной путь?
textarea
но не отключенногоinput
..Ответы:
Временно включите их.
источник
readonly
вместо того,disabled
что упомянуто Андреем ниже.Используйте входы только для чтения вместо отключенных входов:
Это должно быть получено с помощью serialize ().
источник
Вы можете использовать функцию прокси (она влияет на оба
$.serializeArray()
и$.serialize()
):источник
@ user113716 предоставил основной ответ. Мой вклад здесь - это просто jQuery, добавив в него функцию:
Пример использования:
источник
Попробуй это:
источник
Я вижу несколько обходных путей, но до сих пор никто не предложил написать свою собственную функцию сериализации? Здесь вы идете: https://jsfiddle.net/Lnag9kbc/
источник
Отключенные элементы ввода не сериализуются, потому что «отключен» означает, что они не должны использоваться, согласно стандарту W3C. jQuery просто придерживается стандарта, хотя некоторые браузеры этого не делают. Вы можете обойти это, добавив скрытое поле со значением, идентичным отключенному полю, или сделав это через jQuery, что-то вроде этого:
Очевидно, что если у вас было более одного отключенного ввода, вам пришлось бы перебирать соответствующие селекторы и т. Д.
источник
В случае, если кто-то не хочет активировать их, а затем отключить их снова, вы также можете попытаться сделать это (я изменил его из отключенных полей, не выбранных serializeArray , от использования плагина к использованию обычной функции):
Таким образом, вы можете назвать их так:
источник
code
3: {name: undefined, value: ""} 4: {name: undefined, value: ""}Прямо над Аароном Худоном:
Может быть, у вас есть что-то, кроме ввода (например, выберите), поэтому я изменил
в
источник