Textarea验证不起作用Javascript

时间:2010-02-06 11:15:27

标签: javascript html

这是代码示例: 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;
 } 
 }

它不起作用......

3 个答案:

答案 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;
  }
}