5

空の場合は入力の値を検証し、Twitter ブートストラップ ポップオーバーでメッセージ エラーを表示する次のコードがあります。

$(document).on("ready", login_events());

function login_events(){

    $("#userId, #password").on("change", validateEmpty);
    $("#loginButton").on("click", validateAll);

}

function validateEmpty(){

    input = $(this);
    input.popover({animation: true, placement: 'right', trigger: 'manual', title: 'Field is Empty', content: input.attr("data-empty-message")});
    isValid = true;

    if(input.val() === ""){
        input.popover('show');
        isValid =  false;
    }
    else{
        input.popover('hide');
    }

    return isValid;

}

これは、変更イベントが完了したときに完全に機能しますが、フォームの各入力間で反復し、空であるかどうかを検証し (validateEmpty())、空の場合は preventDefault する別の関数を実行したいと考えています。

ご覧のとおり、#loginButton で validateAll 関数を実行するためのクリック イベントを設定しました。これは次のようなものですが、正しい方法がわかりません。

function validateAll(event){

    $("#loginForm input").each(validateEmpty);

}
4

2 に答える 2

1

この閉鎖を試してください:

function validateAll(event){
    var isValid = true;
    $("#loginForm input").each(function (){
        input = $(this);
        input.popover({animation: true, placement: 'right', trigger: 'manual', title: 'Field is Empty', content: input.attr("data-empty-message")});
        isValid = true;

        if(input.val() === ""){
            input.popover('show');
            if (isValid)
                isValid = false;
        }
    });
    if (!isValid) {
        alert('form is not valid!');
    }
}
于 2012-11-16T13:01:11.177 に答える
0

ありがとう@VMAtm!each() 内の関数を置き換えて、既に作成した validateEmpty 関数を実行しました。それは今うまくいっています!

function validateAll(event){

  isValid = true;

  $("#loginForm input").each(validateEmpty);

  if(!isValid){
    event.preventDefault(); 
  }
}
于 2012-11-16T14:54:38.900 に答える