на данный момент у меня есть следующее:
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize(),
});
Это работает нормально, однако я хотел бы добавить значение к данным, поэтому я попробовал
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
});
Но это не правильно. Есть идеи, как добавить элемент в строку сериализации? Это глобальная переменная страницы, не зависящая от формы.
serialization
jquery
Выход
источник
источник
'&NonFormValue=' + NonFormValue
?Ответы:
Вместо того
ты, наверное, хочешь
Вы должны быть осторожны, чтобы URL-кодировать значение,
NonFormValue
если оно может содержать какие-либо специальные символы.источник
encodeURIComponent
чтобы убедиться, что в немNonFormValue
нет специальных символовХотя ответ matt b будет работать, вы также можете использовать его
.serializeArray()
для получения массива из данных формы, изменения его и использованияjQuery.param()
для преобразования его в форму с кодировкой URL. Таким образом, jQuery выполняет сериализацию дополнительных данных за вас.источник
во-первых не должен
быть
а во-вторых, вы можете использовать
или если действие уже содержит какие-либо параметры
источник
NonFormValue
будет отправлен как параметр URL, а не в POST-данных. Это может быть не идеально, если: а) все, что запущено на стороне сервера, ожидает, что оно будет отправлено (например, с использованиемrequest.POST
вместоrequest.REQUEST
Django), или б)NonFormValue
это то, что не должно отображаться в строке URL или истории либо по соображениям безопасности, либо потому, что это временное значение.Сначала добавьте элемент, а затем сериализуйте:
источник
Не забывайте, что вы всегда можете:
в вашей реальной форме, что может быть лучше для вашего кода в зависимости от случая.
источник
Нам нравится:
Например:
источник
Вы можете написать дополнительную функцию для обработки данных формы, и вы должны добавить свои неформальные данные в качестве значения данных в форме. См. Пример:
Затем добавьте этот jquery для обработки формы
источник
Это лучше:
источник