atualmente eu tenho o seguinte:
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize(),
});
Isso funciona bem, mas eu gostaria de adicionar um valor aos dados, então tentei
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
});
Mas isso não foi postado corretamente. Alguma idéia de como você pode adicionar um item à string serializada? Esta é uma variável de página global que não é específica do formulário.
serialization
jquery
A saída
fonte
fonte
'&NonFormValue=' + NonFormValue
?Respostas:
Ao invés de
você provavelmente quer
Você deve ter cuidado ao codificar por URL o valor de
NonFormValue
se ele pode conter qualquer caractere especial.fonte
encodeURIComponent
para garantir queNonFormValue
não tenha nenhum caractere especialEmbora a resposta de matt b funcione, você também pode usar
.serializeArray()
para obter um array dos dados do formulário, modificá-lo e usájQuery.param()
-lo para convertê-lo em um formulário codificado por url. Dessa forma, o jQuery lida com a serialização de seus dados extras para você.fonte
em primeiro lugar não deveria
estar
e em segundo lugar você pode usar
ou se a ação já contém algum parâmetro
fonte
NonFormValue
seria enviado como um parâmetro de URL, não nos dados POSTADOS. Isso pode não ser ideal se a) o que quer que esteja sendo executado no lado do servidor espera que seja POSTADO (por exemplo, usando emrequest.POST
vez derequest.REQUEST
no Django), ou b)NonFormValue
é algo que não deve aparecer na barra de URL ou no histórico por motivos de segurança ou porque é um valor transitório.Adicione o item primeiro e depois serialize:
fonte
Não se esqueça que você sempre pode fazer:
na sua forma real, que pode ser melhor para o seu código, dependendo do caso.
fonte
Podemos fazer como:
Por exemplo:
fonte
Você pode escrever uma função extra para processar dados de formulário e deve adicionar seus dados não formados como o valor dos dados no formulário. Veja o exemplo:
Em seguida, adicione este jquery para processamento de formulário
fonte
melhor assim:
fonte