如何使用JavaScript验证文本区域(textarea)

3

我想检查一个文本区域是否为空。为此,我编写了以下代码:

function validateForm(theForm) {
    var problem_desc = document.getElementById("problem_desc");

    if (problem_desc.value == '') {
        alert("Please Write Problem Description");
        return false;
    } else {
        return true;
    }
}​

第一次运行正常。但是如果我从文本区域中删除文本,则上述功能将返回 true 值,即它假定我先前输入到文本框中的文本。请问有人能告诉我问题出在哪里吗?


它似乎工作得很好:http://jsfiddle.net/Blender/XHUZ4/ - Blender
也许展示你的HTML会更有意义。 - Alex R.
3个回答

4

我理解的是:这是我所做的。

  1. 点击验证,它显示“请填写问题描述”。
  2. 填写一些内容并单击。什么也没有发生。
  3. 删除文本。 点击验证,它显示“请填写问题描述”。

注意:使用 trim 函数来消除空格。

代码:

function validateForm(theForm) {
    var problem_desc = document.getElementById("problem_desc");

    if ($.trim(problem_desc.value) == '') {
        alert("Please Write Problem Description");
        return false;
    } else {
        return true;
    }
}

示例:http://jsfiddle.net/TZGPM/1/ (也检查空格!)


(Note: 该示例还会检查空格!)

你是对的@Praveen Kumar。我使用了trim()方法。但它仍然不起作用。我的trim()方法如下所示:function trim(s) { return s.replace( /^\s*/, "" ).replace( /\s*$/, "" ); } - user1407310
@user1407310 你能否使用jQuery? - Praveen Kumar Purushothaman

3
请检查值中的空格,像这样:

if (problem_desc.value.match (/\S/)) { ... } 

或者通过其他方式检查长度

 problem_desc.value.length == 0; 

0

移除空格并计算值属性的长度。

function validateForm(theForm) {
    var problem_desc = document.getElementById("problem_desc");

    if (problem_desc.value.replace(/ /g,'').length) {
       return true;
    } else {
       alert("Please Write Problem Description");
       return false;
    }
}
<textarea id="problem_desc"></textarea>
<button onclick="validateForm()">Validate</button>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接