Parece que, por padrão, os elementos de entrada desativados são ignorados por $.serialize()
. Existe uma solução alternativa?
jquery
serialization
fms
fonte
fonte
textarea
, mas não a pessoas com deficiênciainput
..Respostas:
Ative-os temporariamente.
fonte
readonly
vez dedisabled
como mencionado por Andrew abaixo.Use entradas somente leitura em vez de entradas desativadas:
Isso deve ser captado por serialize ().
fonte
Você pode usar uma função proxy (isso afeta tanto
$.serializeArray()
e$.serialize()
):fonte
@ user113716 forneceu a resposta principal. Minha contribuição aqui é apenas um detalhe do jQuery, adicionando uma função a ele:
Exemplo de uso:
fonte
Tente o seguinte:
fonte
Eu posso ver algumas soluções alternativas, mas ainda assim ninguém sugeriu escrever sua própria função de serialização? Aqui está: https://jsfiddle.net/Lnag9kbc/
fonte
Os elementos de entrada desativados não são serializados porque 'desativado' significa que eles não devem ser usados, de acordo com o padrão W3C. O jQuery está apenas cumprindo o padrão, embora alguns navegadores não. Você pode contornar isso adicionando um campo oculto com um valor idêntico ao campo desabilitado ou fazendo isso via jQuery, algo como isto:
Obviamente, se você tivesse mais de uma entrada desativada, teria que repetir os seletores correspondentes etc.
fonte
Caso alguém não queira ativá-los e desativá-los novamente, você também pode tentar fazer isso (modifiquei-o dos campos Disabled não selecionados pelo serializeArray , do plug-in ao uso da função normal):
Então você pode chamá-los assim:
fonte
code
3: {name: undefined, value: ""} 4: {name: undefined, value: ""}Pouco sobre Aaron Hudon:
Talvez você tenha algo além de Input (como select), então mudei
para
fonte