防止 Javascript 和 JQuery 中的函数执行
2009-10-09
3367
我有这样一个代码块,当代码发现一个设置为错误的错误属性时,它应该阻止进一步执行,我怎样才能阻止它执行:
$(document).ready(function() {
$("#SendMessage").click(function(e) {
var elements = $("#contact-area input:text[error=error]").get();
for (var i = 0; i < elements.length; i++) {
if ($(elements[0]).attr("error") == "error") {
alert("error found");
// Stop execution of whole function
}
}
$("#loaderImage").show();
$("#statusMessage").text("Sending, Please wait...");
window.setTimeout(function() { PageMethods.SendMessage(new Message().fullContent(), onSuccess(), onFailed()) }, "4000");
});
})
我怎样才能用 JQuery 和 Javascript 做到这一点,也许在 JQuery 中有一个预定义函数可以轻松做到这一点。
2个回答
$(document).ready(function() {
var flag = false;
$("#SendMessage").click(function(e) {
var elements = $("#contact-area input:text[error=error]").get();
for (var i = 0; i < elements.length; i++) {
if ($(elements[0]).attr("error") == "error") {
alert("error found");
// Stop execution of whole function
flag = true;
break;
}
}
if (!flag){
$("#loaderImage").show();
$("#statusMessage").text("Sending, Please wait...");
window.setTimeout(function() { PageMethods.SendMessage(new Message().fullContent(), onSuccess(), onFailed()) }, "4000");
}
});
})
这能满足您的需要吗?
Chris Thompson
2009-10-09
发现错误时只需
return;
$(document).ready(function() {
$("#SendMessage").click(function(e) {
var elements = $("#contact-area input:text[error=error]").get();
for (var i = 0; i < elements.length; i++) {
if ($(elements[0]).attr("error") == "error") {
alert("error found");
return;
}
}
$("#loaderImage").show();
$("#statusMessage").text("Sending, Please wait...");
window.setTimeout(function() { PageMethods.SendMessage(new Message().fullContent(), onSuccess(), onFailed()) }, "4000");
});
})
Jonathan Fingland
2009-10-09