2017-02-13 44 views
-1

私はフォームのページを提出する前にいくつかのAJAXのことをする必要があります。私はシリアル化を使っていますが、入力名にはピリオド文字が含まれています(これについては何もできません。奇妙な)これは、アヤックスを壊している - 私はこのケースでそれらをエスケープすることはできますか?Jqueryを使用しているときにエスケープ文字をシリアライズするには?

<form action="http://content.stuff.com" id="myid" class="form" method="POST" name="PPCform" > 
<input name="uPEw.zMtH4.ptrq8qzoLXcwu7t87tfw2u" type="hidden" /> 
<input name="yP7h.zGDK46p8rq8qzJYDnru9D87Zfw2y" placeholder="Email" type="text" value=""> 
<input type="submit" id="button-blue" value="SUBMIT AND CONTINUE" /> 
</form> 

、スクリプトは次のとおりです:基本的な形式は

$("form").submit(function (event) { 
       event.preventDefault(); 
    //FB pixel, other stuff 
    $.post($(this).attr('action'), $(this).serialize()) 
         .done(function() { 
          // redirect, etc. 
         }); 
      }); 

しかし、これが原因に動作しません。名前で。私は個々にそれをつかむわけではないので、通常の//エスケープメソッドを使用することはできません。任意のアイデアはどのように期間をエスケープするシリアル化を指示するか?

var serial = $(this).serialize().replace(/\.(?!com|net|org|us)/g,'') 
$.post($(this).attr('action'), serial).done(function() { 
    //Your code goes here. 
}); 

それは問題を修正する死んで簡単な方法ですが、おそらく上の多くの洗練を必要とする:あなたは、単純なように、入力名に含まれている期間を削除するために置き換える正規表現を使用することができます

+1

*「ajaxを破る」とはどういう意味ですか? – Phil

+1

これはすばやく試しました。値はシリアル化されて正しく送信されます。たとえば、 'yP7h.zGDK46p8rq8qzJYDnru9D87Zfw2y = email @ example.com' – Phil

答えて

関連する問題