这是代码示例: HTML:
<form id="information" name="information" action="#" method="post">
<textarea name="text" rows="10" cols="10">
</textarea>
<input type="submit" value="submit"/>
</form>
Javascript:
window.onload=init;
function init(){
document.getElementById('information').onsubmit=validateForm;
}
function validateForm(){
var text= document.information.text.value;
if(text==""){
alert('text area cannot be empty');
return false;
}
}
它不起作用......
答案 0 :(得分:5)
您的textarea中有回车符 - 因此其值为\n
或\r\n
在同一行关闭你的标签
编辑:
您可以使用此函数删除开头和结尾空白
function trim( str ) {
return str.replace( /^\s+|\s+$/g, '' );
}
答案 1 :(得分:2)
textarea里面有一个回车(和一个空格),所以你的情况永远不会成真。所以改成它:
<textarea name="text" rows="10" cols="10"></textarea>
但是你可能想要进一步阻止用户输入“空”响应(意味着只有空格)。或者您可能只想删除前导和尾随空格。如果是这样,你可以这样做:
text = text.trim();
现在trim()
我认为相对较新(Firefox将其列为3.5中的新内容)。更向后兼容的版本是:
text = text..replace(/^\s\s*/, '').replace(/\s\s*$/, '');
然后测试它是否为空。
Faster JavaScript Trim对各种白色空间修剪方案进行了很好的分析。例如,上面的一个正则表达式可以完成:
text = text..replace(/^\s+|\s+$/g, '');
但
这种常见的方法是 容易最常用的 今天的JavaScript库。它是 通常是最快的实施 只有在使用时 不包括的短字符串 领先或尾随空格。这个 小的优势部分是由于 初始性格歧视 它会触发优化。虽然这个 是一个相对不错的表演者,它是 比上面三种方法慢 使用较长的琴弦时, 因为顶级交替 防止了许多优化 否则可能会开始。
答案 2 :(得分:0)
这对我有用:
function validateForm(){
var text = document.information.text.value;
if(text == " \n "){
alert("Error");
return false;
}
}