0

我想在文本区域中检测一个新的空行,如果用户只是在文本区域中按下回车,而不输入任何数据来返回 false 并回显消息。我做了一些研究并想到了这样的事情:

var validatef ....
var code = (e.keyCode ? e.keyCode : e.which);
if (validatef == 'a value here' || code == 13) { 
  somevarhere.textcontent = 'Message';
  return false;
}
else {....}

但这似乎不起作用。

4

5 回答 5

2

您可以通过检查值来检测文本区域中的空行:

\r\n(对我来说很好)或\n

只需将文本替换为a value here\r\n\n适合您的文本即可。

编辑:

检查如何计算字符串中出现的字符串?计算正则表达式的出现。所以你可以做一个for循环来显示错误信息/\s/g

希望能帮助到你。

于 2013-10-25T20:51:27.800 回答
1

只需测试用户是否按两次回车

/\n\n/.test(this.value)
于 2013-10-25T20:56:38.757 回答
1

试试这个

 $('textarea').on('keypress', function(e) {
    var val = $('textarea').val();
    if (e.which == 13) {
if(! /\S/.test(val)) {
   alert("no data");
}
    }
});

这会提醒每个按键没有数据。

这是在 jQuery 中,但即使在纯 Javascript 中也会相似

这是演示http://jsfiddle.net/TUCx8/

于 2013-10-25T21:02:28.860 回答
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!');
    }
});

现场示例http://jsfiddle.net/fp6xk/

于 2013-10-25T21:04:03.203 回答
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/

于 2013-10-25T21:27:10.947 回答