6

この関数を使用して、フォームをバックグラウンドで送信し、カスタム メッセージを使用しています。テキストエリアフィールドを除いて、完全に機能します。serialize 関数には ex に問題があることを読みました。改行。

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

テキストエリアはマークアップです!エディターエリア。

4

3 に答える 3

2

ここに記載されているように: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);
    });
  }
});

うまくいかない場合は、手動で textarea データを urlencode してください:

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

また、他のフォーム コンテンツも送信したい場合 (注: ここではテキストエリアに「名前」を付けないでください。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);
    });
  }
});
于 2010-11-06T23:41:55.930 に答える
0

考えられることの 1 つ (jQuery シリアライズの標準的な使用法が機能しない場合) は、マークアップ コードがそのテキストエリアを取得し、何か凝った処理を行って、もはやテキストエリアのように振る舞わないようにすることです。おそらくMarkitup APIでデータを取得する方法はありますか?

于 2010-11-06T22:26:42.127 に答える