2014-09-22 16 views
0

У меня есть сайт социальной сети, все работает нормально, моя единственная проблема - всякий раз, когда я ввожу двойной вопросительный знак в поле обзора или комментария, он показывает странный текст.regex escape double вопросительный знак

==========

Если я поступил "привет ??" распечатано так: «hellojQuery110205576835575724747_14114109», Я хочу знать, как избежать специальных символов, в моем случае двойной вопросительный знак. Есть ли лучший способ сделать это без регулярного выражения. Спасибо заранее. это мой код.

$(document).undelegate('.comment', 'keypress').delegate('.comment', 'keypress', function(e) { 

       if ($.trim($(this).val()) !== '') { 
        if (e.which === 10 || e.which === 13) { 
         var comment = $(this).val(); 
         var id = $(this).closest('.review_list').attr('id'); 
         $.ajax({ 
          type: 'POST', 
          url: '../controller/pageController.php', 
          data: 'review_id=' + id + '&comment=' + comment + '&luser_id=' + luser_id, 
          dataType:'json', 
          cache: false, 
          success: function(id) { 
           if($.trim(id)=='NO'){ 
           window.location='profile.php'; 
                } 
           id = $.trim(id.id); 
           var c = "<li id='" + id + "'><div id='c_thumb'>"+(thumb != null ? '<img src="profile_images/' + thumb + '"/>' : '')+"</div><div id='commenter'><a href='userprofile.php?id="+luser_id+"'>" + name + "</a></div><div id='time'> 0 second ago</div><p>" + comment + "</p><a id='c_remove' href=''>remove</a></li>"; 

           $('#comment_box li:last-child').before(c); 
           document.getElementById("post_comment").reset(); 
          }//end of success 
         }); 

        } 
       } 
      }); 

ответ

0

Необходимо правильно кодировать параметры URL. Один из способов заключается в вызове encodeURIComponent() по каждому параметру, но так как вы используете JQuery Я рекомендую позволить ему сделать кодировку для вас, предоставляя объект как data: вариант:

data: { review_id: id, 
     comment: comment, 
     luser_id: luser_id 
     }, 
+0

жаль ... Я уже использую ..encodeURI для комментариев ... вроде this..var comment = encodeURI ($ (this) .val()); – user3365987

+0

Где вы видите дополнительные персонажи? В абзаце, который отображается функция успеха? – Barmar

+0

функция успеха не вызывается .. когда я ввел двойной вопросительный знак ... дополнительные символы отображаются в комментариях ... пожалуйста, помогите – user3365987

Смежные вопросы