$(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;
    });
});

即使在上面的代码中显示弹出消息,其他情况下,此返回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;
    }
});

我在这方面做错了什么?

谢谢

最佳答案

return false;循环中的each仅会中断循环,它不会从您的Submit函数返回,因此其余Submit函数将继续运行。

您可以在循环中设置是否继续提交的变量,然后在循环之后检查是否需要提交。

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;
}

关于javascript - 我的Return false在此代码中不起作用..使用jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3828145/

10-12 07:03