3

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

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

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

第一次它工作正常。但是,如果我从文本区域中删除文本,则上述函数将返回真值,即假设我已在文本框中输入了先前的文本。谁能告诉我问题出在哪里?

4

3 回答 3

4

我得到了正确的。这就是我所做的。

  1. 点击验证,它说Please Write Problem Description
  2. 写点东西然后点击。没啥事儿。
  3. 删除文本。点击验证,它说Please Write Problem Description

注意:使用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/ (也检查空格!)

于 2012-09-28T07:32:11.130 回答
3

像这样检查值中的空格

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

或其他方式检查长度

 problem_desc.value.length == 0; 
于 2012-09-28T07:30:07.423 回答
0

删除空格并计算 value 属性的长度。

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>

于 2016-10-10T15:38:48.603 回答