質問

この関数を使用して、カスタムメッセージを使用してバックグラウンドでフォームを送信しています。 Textareaフィールドを除いて、完全に機能します。シリアル化関数にはExに問題があることを読みました。ラインブレイク。

 $(function() {
      $("#comment_form").validate({    submitHandler: function(form) {
        $.post('/u/r/l/', $("#comment_form").serialize(),
 function(data) {
            $('#comment_container').html(data);
                });
            }
        });

TextareaはMarkitupです!編集エリア。

役に立ちましたか?

解決

ここで述べたように: 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);
    });
  }
});

うまくいかない場合は、テキストレアデータを手動でurlencodeします。

$(function() {
  $("#comment_form").validate({ submitHandler: function(form) {
    $.post('/u/r/l/', "textareadata="+escape($("#mytextarea").value), function(data) {
      $('#comment_container').html(data);
    });
  }
});

また、他のフォームのコンテンツを送信したい場合(注:ここでは「名前」を「名前」にしないでください!):

$(function() {
  $("#comment_form").validate({ submitHandler: function(form) {
    $.post('/u/r/l/',
    $("#comment_form").formSerialize()+"&textareadata="+escape($("#mytextarea").value),
    function(data) {
      $('#comment_container').html(data);
    });
  }
});

他のヒント

jquery serializeの標準的な使用が機能していない場合)の1つは、MarkitupコードがそのTextareaを取得しており、Textareaのように動作しないようにしていることです。 Markitup APIにデータを取得する方法はありますか?

ここで、main_post_txtは、使用しているHTMLテキストエリア要素のIDです。

var post_text = $("#main_post_txt").serialize();  
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top