在满足指定条件时立即退出JavaScript函数?

时间:2018-04-14 18:24:57

标签: javascript jquery

我有以下功能,无论我做什么,它都赢了,但我不知道,也许我在这里错过了一些东西。

我想要完成的是将输入字段的值与数据列表的选项进行比较。到目前为止,该函数比较了这些值,并在找到一个匹配后返回true,但它只是在之后循环返回false。

function OperatorSelectionCheck() {

                if ($("#ModalEmployeeSelect").val() != "")
                {
                    $('#ModalEmployeeSelectList option').filter(function () {

                        if ($(this).val() === $("#ModalEmployeeSelect").val())
                        {
                            $("#ModalEmployeeSelect").removeClass("tberror");
                            $("#timesheet-modal-errorbag").text("");
                            return;
                        }
                        else
                        {
                            $("#ModalEmployeeSelect").focus();
                            $("#ModalEmployeeSelect").addClass("tberror");

                            $("#timesheet-modal-errorbag").text("The entry " + $("#ModalEmployeeSelect").val() + " does not match any users in the database." );
                            return false;
                        }

                    });

                }
                else
                {
                    $("#ModalEmployeeSelect").focus();
                    $("#ModalEmployeeSelect").addClass("tberror");
                    $("#timesheet-modal-errorbag").text("Please select an operator.");
                    return false
                }
            }

1 个答案:

答案 0 :(得分:1)

也许重构?我没有运行下面的代码,但可能会帮助您朝着正确的方向发展。

var collection = $('#ModalEmployeeSelectList option').filter(function () {
   return $(this).val() === $("#ModalEmployeeSelect").val()
})

if (collection.length > 0) {
  $("#ModalEmployeeSelect").removeClass("tberror");
  $("#timesheet-modal-errorbag").text("");
}
else {
 $("#ModalEmployeeSelect").focus();
 $("#ModalEmployeeSelect").addClass("tberror");
 $("#timesheet-modal-errorbag").text("The entry " +   $("#ModalEmployeeSelect").val() + " does not match any users in the database." );
}