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 回答