【问题标题】:Iterate between each input to validate value在每个输入之间迭代以验证值
【发布时间】:2012-11-16 12:55:17
【问题描述】:

我有这段代码可以验证输入的值是否为空,并使用 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);

}

【问题讨论】:

    标签: jquery forms validation each preventdefault


    【解决方案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!');
        }
    }
    

    【讨论】:

    • 谢谢,我可以弄清楚你如何处理代码中的 isValid 。我在下面写了答案。
    【解决方案2】:

    感谢@VMAtm!我替换了 each() 中的函数来运行我已经创建的 validateEmpty 函数。现在效果很好!

    function validateAll(event){
    
      isValid = true;
    
      $("#loginForm input").each(validateEmpty);
    
      if(!isValid){
        event.preventDefault(); 
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-25
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 2021-10-09
      • 2017-09-20
      相关资源
      最近更新 更多