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

标签 javascript jquery validation keypress preventdefault

我正在使用以下代码从 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>')
        }
    } 
});

最佳答案

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

Live Demo

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

The $.trim() function removes all newlines, spaces (including non-breaking spaces), and tabs from the beginning and end of the supplied string. If these whitespace characters occur in the middle of the string, they are preserved, jQuery doc.

关于javascript - 如何防止文本区域中的换行符并阻止 Jquery 将换行符计为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22087774/

相关文章:

c++ - 如果用户输入多个整数,如何抛出错误

javascript - JavaScript 中的字符串替换

ruby-on-rails-3 - Rails 3 基于 Action 验证规则

javascript - 使用 VueJS 进行表单验证时的 null 值

javascript - 在靠近底部的地方拖动时在可移动的 DIV 内部滚动

javascript - ajax刷新页面后jquery不工作

jquery - 保留在子文件夹中时找不到 CSS

javascript - DIV 的最大长度,例如 Textarea

javascript - 如何在 leaflet.js 中的标记上添加点击事件

Javascript匿名函数向其添加对象