1

ユーザー入力データが空でないことを検証する JavaScript 関数を作成しました。「isNotEmpty()」という関数は、テキスト ボックスが空であることを識別します。ただし、メイン関数は true ステートメントを JSP ページに返します。したがって、フォームが送信されます。

フォームからの入力に応じて、2 番と 3 番のアラートが発生します。ただし、アラート No1 はどのような状況でも発生しません。

これを確認して、私を助けてください。ありがとうございました。

var firstName;
var data  = new Array(); 

function formEntryValidationTest() {
    firstName = document.forms["regForm"]["firstName"];
    data[0] = isNotEmpty(firstName);//check the first name is empty

    for(var i=0;i<data.length;i++) {
        if(data[i]=="false")
        {
            alert("Check"); //alert No-1
            return false;
        }
    }
}

// this is the function to check whether the input is not empty
function isNotEmpty(obj) {
    if(obj.value!="") {
        alert("true"); //alert No-2
        return "true";
    }
    else
    {
        alert("false");//alert No-3
        return "false";
    }
}
4

2 に答える 2

4

JavaScript で「真の」値に評価される"false"ブール値ではなく、文字列を返しています。false

return ステートメントisNotEmptyreturn true;およびに変更しreturn false;、条件を に変更formEntryValidationTestif (!data[i])ます。

また、チェックイン条件isNotEmptyが厳しすぎる。undefinedとに対して true を返しますnull。これが、コードが機能しない理由である可能性があります。次のように変更します。

function isNotEmpty(value){
  return value ? value.length > 0 : false;
}

次に、入力オブジェクト自体を渡すのではなく、入力値を直接渡します。

data[0] = isNotEmpty(firstName.value);
于 2012-09-08T13:33:46.293 に答える
1

ブール値trueおよびfalseの代わりに、文字列「true」および「false」を使用しています。次のように引用符を削除します。

   return true

instead of 

   return "true"

ifステートメントでも同じことを行います。

    if(data[i]==false)
instead of
    if(data[i]=="false")

(引用符がないことに注意してください)

于 2012-09-08T13:46:47.470 に答える