如何防止文本区域中的换行符并阻止Jquery将换行符计为值

时间:2014-02-28 06:23:27

标签: javascript jquery validation keypress preventdefault

我使用以下代码从textarea发送一些值,但首先我要确保Textarea不为空,然后如果在keypress上不为空,请输入"然后将值发送到ajax。

问题是值长度计数换行符并且验证失败。另一个是换行符,我如何防止换行?

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>')
        }
    } 
});

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery.trim删除开始和结束的换行符。这将使他至少放两个角色。与单个字符一样,您将删除换行符并留下字符。

<强> Live Demo

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

$ .trim()函数删除所有换行符,空格(包括   不间断的空格),以及从开头和结尾的标签   提供的字符串如果这些空白字符出现在中间   字符串,它们被保留,jQuery doc

答案 1 :(得分: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>')
    }
    } 
});