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