我的返回false在此代码中不起作用..使用jquery

kum*_*mar 2 javascript asp.net jquery

$(function () {
    $('#form4').submit(function () {
        var val = $("#txtNewServiceTypeCategory").val();

        $("#ServiceTypeCategoryName").children("option").each(function () {
            var $this = $(this);
            if (val == $this.val()) {
                alert("ServiceTypeCategory Name is already added! Please Choose Differnt Category Name");
                return false;
            }
        });
        $('#someHiddenDiv2').show();
        $('#STSave').attr('disabled', 'disabled');
        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            success: function (result) {
                $('#someHiddenDiv2').hide();
                alert('Saved NewServiceTypeCategory Successfully. Thank you!');
            },
            error: function () {
                alert('Error occured!  Plese try again later!.');
                $('#someHiddenDiv2').hide();
                $('#STSave').removeAttr('disabled');
            }
        });
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

这个返回false在上面的代码中不起作用,即使它显示弹出消息,其他东西在这里执行,

$("#ServiceTypeCategoryName").children("option").each(function () {
    var $this = $(this);
    if (val == $this.val()) {
        alert("ServiceTypeCategory Name is already added! Please Choose Differnt Category Name");
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

谢谢

dav*_*eps 13

return false;each环路只有打破循环,它不会从您提交函数返回,所以您提交功能的其余部分将继续运行.

您可以在循环中设置一个变量,以确定是否继续提交,然后在循环之后,您可以检查是否需要提交.

var exitSubmit = false;
$("#ServiceTypeCategoryName").children("option").each(function () {
                  var $this = $(this);
                  if (val == $this.val()) {
                      exitSubmit = true;
                      return false;
                  }
              });
if (exitSubmit) {
    alert("ServiceTypeCategory Name is already added! Please Choose Differnt Category Name");
    return false;
}
Run Code Online (Sandbox Code Playgroud)