2014-02-28 51 views
1

我正在使用以下代碼從textarea發送一些值,但首先我想確保Textarea不是空的,然後如果按鍵不輸入「Enter」,然後將值發送給ajax。如何防止在文本區域換行符,並阻止jquery從計數換行符作爲值

問題是值長度計數換行符和驗證失敗。另一種是換行符,我如何防止換行符?

JAVASCRIPT

$(document).keypress(function(e) { 
    if(e.which == 13) { 
     if ($('.msgInput').val().length < 2){ 
      alert ('No lol, your message is too short, type some more...') 
     } else { 
     var Msg = $('#Messageinput').val() 

      $.ajax({ 
       type:"POST", 
       data: { 
        data:Msg 
       }, 
       url:"../websocket-example-821156/client.php" 
      }).done(function(feedback){ 
       $('#NewMessagesHolder').prepend('<div class="MessageClass ServerMessage">'+ '<span class="ChatName">Server ('+ time + ')</span>' + ':'+feedback+'</div>'); 
      }) 

      var text = $('.msgInput').val(); 

      $('.msgInput').val(""); 
      $('#NewMessagesHolder').prepend('<div class="MessageClass">'+ '<span class="ChatName">' + CookieName + ' ('+ time + ')</span>' + ': '+ text +'</div>') 
     } 
    } 
}); 
+1

防止換行符的textarea只不過是一個常規輸入。 – adeneo

+0

你不一致。 .msgInput和#Messageinput - 獲得它一次並重復使用:'var Msg = $ .trim($('#Messageinput')。val()); ('沒有大聲笑,你的消息太短,輸入更多...') } else {'...(如果(例如== 13){Msg.length <2){ } – mplungjan

回答

1

您可以使用jQuery.trim刪除換行符的開始和結束。這會讓他至少放兩個人物。與單個字符一樣,您將刪除換行符並留下字符。

Live Demo

if ($.trim($('.msgInput').val()).length < 2){ 

的$ .trim()函數刪除所有的換行,空格(包括 非中斷空格)和選項卡從 提供的字符串的開頭和結尾。如果這些空白字符出現在字符串 的中間,則它們將被保留,jQuery doc

+2

爲什麼選擇投票? – mplungjan

1
$(document).keypress(function(e) { 

    var text = $('.msgInput').val().replace(/\r\n/g,'\n').replace(/\n/g,''); 

    if(e.which == 13) { 
     if (text.length < 2){ 
     alert ('No lol, your message is too short, type some more...') 
     } else { 
     var Msg = $('#Messageinput').val() 
     $.ajax({ 
      type:"POST", 
      data: {data:Msg}, 
      url:"../websocket-example-821156/client.php" 
     }).done(function(feedback){ 
     $('#NewMessagesHolder').prepend('<div class="MessageClass ServerMessage">'+ '<span class="ChatName">Server ('+ time + ')</span>' + ':'+feedback+'</div>'); 
    }) 

    $('.msgInput').val("") 
$('#NewMessagesHolder').prepend('<div class="MessageClass">'+ '<span class="ChatName">' + CookieName + ' ('+ time + ')</span>' + ': '+ text +'</div>') 
    } 
    } 
}); 
+0

完美這應該工作 – rjdmello