当先前设置了true值时,避免更改JS变量值

时间:2012-11-22 12:49:52

标签: javascript jquery

我有一个javascript函数,用于检查文本框值并返回true或false值。

我有几个要检查的文本框:

<asp:textbox id="txt1" class="tocheck" runat="server />
<asp:textbox id="txt2" class="tocheck" runat="server />
<asp:textbox id="txt3" class="tocheck" runat="server />

当我按下提交按钮(Linkbutton1)时,我会检查所有值:

$('#LinkButton1').click(function () {
    var error = false;
    $.each($('.tocheck'), function (i, v) {
        error =  check($(v).val(), $(this));
    });
    return error;
});

如果其中一个调用返回true,则必须将整体验证视为失败,并且必须保留true值。

所以我想要的是阻止将错误变量设置为false,之前它已经设置为true

是否有操作符功能可以控制此操作? 谢谢。

3 个答案:

答案 0 :(得分:2)

$('#LinkButton1').click(function () {
    var error = false;
    $.each($('.tocheck'), function (i, v) {
        if (!error) {
            error =  check($(v).val(), $(this));
        }
    });
    return error;
});

您还可以在函数中返回false以打破每个。文档中的更多信息:http://api.jquery.com/jQuery.each/

答案 1 :(得分:1)

您可以改为使用filter()

$("#LinkButton1").click(function() {
    return $(".tocheck").filter(function() {
        return check(this.value, this);
    }).length;
});

答案 2 :(得分:0)

$('#LinkButton1').click(function () {
    var error = false;
    $.each($('.tocheck'), function (i, v) {
        error =  check($(v).val(), $(this));
        if(error)
            return error;
    });
    return error;
});