JQuery serialize() исключает textarea - программирование
Подтвердить что ты не робот

JQuery serialize() исключает textarea

Когда я отправляю форму, используя метод jQuery serialize(), все отправляется, кроме текстового поля в форме. Это распространенная проблема? Я не могу понять. Форма работает, за исключением только текстового поля, которое остается undefined

<textarea form="new_note_form" id="note_text" name="note_text" required="required"></textarea>     
4b9b3361

Ответ 1

Он не работает , пока не добавит атрибут name в текстовое поле.

<textarea id="sLifeStyle3Content" name="sLifeStyle3Content" placeholder="HTML is allowed"> <apex:outputText value="{!sLifeStyle3Content}" /> </textarea>

Ответ 2

Нет, это не так.

Он отлично работает. http://jsfiddle.net/nuBkM/

<form>
    <input name="foo" value="bar"/><br>
    <textarea name="something">lorem ipsum</textarea>
</form>

JavaScript

console.log($("form").serialize());
// => foo=bar&something=lorem+ipsum 

.serializeArray тоже работает

console.log($("form").serializeArray());
// => [{name: "foo", value: "bar"}, {name: "something", value: "lorem ipsum"}] 

Ответ 3

Хорошо работает на скрипке. http://jsfiddle.net/Ultimate/2Ey2A/ Тестирование с помощью

$('button').click(function(){
    alert($('form').serialize());
});

Ответ 4

У меня такой же опыт. Отправка формы с помощью $( "# form_id" ). Serialize() не включает поля textarea. Такое поведение наблюдается в течение последних 2 лет в единственной форме, в которой есть элементы textarea. Время от времени я пересматриваю форму и код, чтобы сделать вывод, что он должен работать, но не делает.

Моя работа - неудивительно, что сначала перемещать содержимое текстовых полей в скрытые текстовые поля, а затем сериализовывать данные формы.

Ответ 5

Другая работа для этого - превратить значение textarea в переменную и передать это с помощью вызова ajax...

var comment = $('. note_comment'). val();

           $.ajax({
               type: "POST",
               url: '/approot/rewrite.cfm/app.people/insertNote?format=json&Comment=' + comment,
               data: $("form[name='add_note_form']").serializeArray(),
               success: function(data)
               {
              alert('success');         
               }
             });

Ответ 6

Он оставляет текстовую область, если вы не Удалить 'form = "new_note_form" ' из вашего элемента textarea.

Я знаю это против хороших практик, но, если вы хотите использовать функцию сериализации jQuery, вы должны удалить этот атрибут из элемента textarea.

Ответ 7

Если текстовое поле управляется редактором вроде tinyMCE, вам может потребоваться вызвать tinyMCE.triggerSave(), как описано в этом ответе.

Ответ 8

Мы столкнулись с той же проблемой, когда текстовое поле не было сериализовано, несмотря на наличие набора атрибутов имени, и заметило, что это зависит от того, где в форме помещалось текстовое поле. У нас была роскошь перемещать текстовое поле в другое место в форме для решения проблемы.