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;
    }
}​

初めて正常に動作しています。しかし、テキストエリアからテキストを削除すると、上記の関数は真の値を返します。つまり、テキストボックスに入力した前のテキストを想定しています。どこに問題があるのか​​ 誰か親切に教えてもらえますか?

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

スペースを削除し、値属性の長さを計算します。

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 に答える