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)