jQuery serialize error with textarea filed
I'm using this function, to submit form in the background, with custom messages. It works perfectly, except with textarea fields. I've read that the serialize function has problems with ex. linebreaks.
$(function() {
$("#comment_form").validate({ submitHandler: function(form) {
$.post('/u/r/l/', $("#comment_form").serialize(),
function(data) {
$('#comment_container').html(data);
});
}
});
The textarea is a mar开发者_JAVA技巧kitup! editor area.
As stated here: http://api.jquery.com/serialize/#comment-67394779
function keepLB (str) {
var reg=new RegExp("(%0A)", "g");
return str.replace(reg,"%0D$1");
}
$(function() {
$("#comment_form").validate({ submitHandler: function(form) {
$.post('/u/r/l/', keepLB($("#comment_form").formSerialize()), function(data) {
$('#comment_container').html(data);
});
}
});
If it doesn't work, manually urlencode the textarea data:
$(function() {
$("#comment_form").validate({ submitHandler: function(form) {
$.post('/u/r/l/', "textareadata="+escape($("#mytextarea").value), function(data) {
$('#comment_container').html(data);
});
}
});
And if you also want to send other form contents (note: don't give the textarea a "name" here, just an id!):
$(function() {
$("#comment_form").validate({ submitHandler: function(form) {
$.post('/u/r/l/',
$("#comment_form").formSerialize()+"&textareadata="+escape($("#mytextarea").value),
function(data) {
$('#comment_container').html(data);
});
}
});
One thought (if standard usage of jQuery serialize isn't working) is that the markitup code is taking that textarea and do something fancy with it so that it doesn't even act like a textarea anymore. Is there some way in Markitup API to retrieve the data perhaps?
Here main_post_txt is the id of html text area element which you are using and in jquery you can get easily its value by using
var post_text = $("#main_post_txt").serialize();
精彩评论