我想检测文本区域中的新空行,如果用户只是按下文本区域,则不输入任何数据以返回false并回显消息。我做了一些研究并想到了这样的事情:
var validatef ....
var code = (e.keyCode ? e.keyCode : e.which);
if (validatef == 'a value here' || code == 13) {
somevarhere.textcontent = 'Message';
return false;
}
else {....}
但它似乎不起作用。
答案 0 :(得分:2)
您可以通过检查值来检测textarea中的空行:
\r\n
(对我来说很好)或\n
只需将文字a value here
替换为\r\n
或\n
最适合您的文字。
修改强>
检查How to count string occurrence in string?以计算正则表达式的外观。因此,您可以设置for
循环以在/\s/g
上显示错误消息。
希望它有所帮助。
答案 1 :(得分:1)
只测试用户是否按下了两次
/\n\n/.test(this.value)
答案 2 :(得分:1)
试试这个
$('textarea').on('keypress', function(e) {
var val = $('textarea').val();
if (e.which == 13) {
if(! /\S/.test(val)) {
alert("no data");
}
}
});
这会警告每个按键没有数据。
这是在jQuery中,但即使在简单的Javascript中它也会类似
答案 3 :(得分:1)
根据问题的第一句,这可能是可能的解决方案之一:
var enters = 0;
$('textarea').keypress(function(event) {
if (event.which == 13)
enters++;
else
enters = 0;
if (enters > 1) {
alert('You hit 2 new lines!');
}
});
答案 4 :(得分:0)
另一个解决方案是在文本结束前检查空行:
(function(){
$('textarea').keyup(function(event) {
if (/(\r?\n){2}$/.test($(this).val())) {
alert('2 consecutive empty lines at the end!');
}
});
})();
它可以独立于连续输入印刷机工作。 http://jsfiddle.net/fp6xk/4/