【问题标题】:How prevent line breaks in a text area and to stop Jquery from counting line breaks as values如何防止文本区域中的换行符并阻止 Jquery 将换行符计为值
【发布时间】:2014-04-01 00:27:35
【问题描述】:

我正在使用以下代码从 textarea 发送一些值,但首先我想确保 Textarea 不为空,然后如果在按键“Enter”上不为空,则将值发送到 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>')
        }
    } 
});

【问题讨论】:

  • 防止换行符的文本区域只不过是常规输入。
  • 你不一致。 .msgInput 和 #Messageinput - 获取一次并重用:var Msg = $.trim($('#Messageinput').val()); if(e.which == 13) { if (Msg.length &lt; 2){ alert ('No lol, your message is too short, type some more...') } else { ...

标签: javascript jquery validation keypress preventdefault


【解决方案1】:

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

Live Demo

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

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

【讨论】:

    【解决方案2】:
    $(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>')
        }
        } 
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2010-10-22
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      相关资源
      最近更新 更多