#javascript #json #jquery #post
#javascript #json #jquery #Публикация
Вопрос:
У меня есть форма, состоящая из нескольких текстовых полей и текстовой области для заметок / комментариев к заказу. Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я ввожу специальный символ в текстовой области, запрос ajax перестает работать. Я пытался экранировать специальные символы с помощью escape, escapeURIComponent и т. Д., Но, похоже, ничего не работает. Удаление специальных символов работает, но это не решает мою проблему. Есть предложения? ниже приведен фрагмент кода, который у меня есть:
$.post(getPost('addComponent'), {
componentType:$('#componentType').val(),
productQty:$('#productQty').val(),
comments:$("#orderNotes").val()
}, function(data, statusCode) {
if (statusCode === 'success') {
updateComponentContainer(data);
} else {
return false;
}
}, 'json');
Ответ №1:
Взгляните на jQuery.serialize()
http://api.jquery.com/serialize/
** РЕДАКТИРОВАТЬ **
Посмотрите на этот jsFiddle:
Комментарии:
1. Насколько я понимаю, serialize() сериализует всю форму правильно? Как бы вы это сделали только для одного элемента? в моем случае это текстовая область. Пожалуйста, дайте мне знать.
2. @Jrobertiko — Вы можете сериализовать один элемент. Посмотрите на jsFiddle, который я вставил в свой ответ.
Ответ №2:
Не уверен, что это за специальные символы, но кодировка base64 должна решить проблему.
http://www.webtoolkit.info/javascript-base64.html
и если вы хотите попробовать, прежде чем покупать, демонстрационную страницу!