javaScript:即使在返回false之后行也在执行

时间:2017-05-13 10:28:21

标签: javascript jquery angularjs

在向DB提交用户输入详细信息之前,我想要进行验证检查。我有表单选项卡和一个常用的单独保存按钮,点击调用时保存功能描述如下;

$scope.saveFn = function () {
    $("#active_form_id")
        .find("input,textarea,select")
        .each(function (e) {
            var value = $(this).val();
            var id = $(this).prop("id");

            if (value == null || value == "") {
                return false;
                //Abort things here
            }
        });

    alert("After validation check");
}

当用户点击“保存”按钮时调用此方法,并将其发送到一个端点调用,该调用将数据保存到服务器。 我的问题是,即使return false语句正在执行,我的端点也会被调用,并且执行下面的写入警报。

如何停止执行警告声明?

alert("After validation check");

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此代码。我设置了一个全局变量,如果验证为false,则将该变量设置为false

var IsValid=true;
 $scope.saveFn = function () {
    $("#active_form_id")
    .find("input,textarea,select")
    .each(function (e) {
        var value = $(this).val();
        var id = $(this).prop("id");

        if (value == null || value == "") {
            IsValid=false;
            return false;
            //Abort things here
        }
    });
    if(IsValid){
      alert("After validation check");
    }
}