Ответ 1
Он не работает , пока не добавит атрибут name
в текстовое поле.
<textarea id="sLifeStyle3Content" name="sLifeStyle3Content" placeholder="HTML is allowed">
<apex:outputText value="{!sLifeStyle3Content}" />
</textarea>
Когда я отправляю форму, используя метод jQuery serialize(), все отправляется, кроме текстового поля в форме. Это распространенная проблема? Я не могу понять. Форма работает, за исключением только текстового поля, которое остается undefined
<textarea form="new_note_form" id="note_text" name="note_text" required="required"></textarea>
Он не работает , пока не добавит атрибут name
в текстовое поле.
<textarea id="sLifeStyle3Content" name="sLifeStyle3Content" placeholder="HTML is allowed">
<apex:outputText value="{!sLifeStyle3Content}" />
</textarea>
Нет, это не так.
Он отлично работает. 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"}]
Хорошо работает на скрипке. http://jsfiddle.net/Ultimate/2Ey2A/ Тестирование с помощью
$('button').click(function(){
alert($('form').serialize());
});
У меня такой же опыт. Отправка формы с помощью $( "# form_id" ). Serialize() не включает поля textarea. Такое поведение наблюдается в течение последних 2 лет в единственной форме, в которой есть элементы textarea. Время от времени я пересматриваю форму и код, чтобы сделать вывод, что он должен работать, но не делает.
Моя работа - неудивительно, что сначала перемещать содержимое текстовых полей в скрытые текстовые поля, а затем сериализовывать данные формы.
Другая работа для этого - превратить значение 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');
}
});
Он оставляет текстовую область, если вы не Удалить 'form = "new_note_form" ' из вашего элемента textarea.
Я знаю это против хороших практик, но, если вы хотите использовать функцию сериализации jQuery, вы должны удалить этот атрибут из элемента textarea.
Если текстовое поле управляется редактором вроде tinyMCE, вам может потребоваться вызвать tinyMCE.triggerSave()
, как описано в этом ответе.
Мы столкнулись с той же проблемой, когда текстовое поле не было сериализовано, несмотря на наличие набора атрибутов имени, и заметило, что это зависит от того, где в форме помещалось текстовое поле. У нас была роскошь перемещать текстовое поле в другое место в форме для решения проблемы.