【发布时间】:2014-08-18 20:18:13
【问题描述】:
我有一个格式为“deleteCont”的 JSP 和一个带有函数“validateDelete”的 javascript 文件。当我单击“删除联系人”按钮时,成功调用了“validateDelete”函数并显示带有“alertmessage”的警报。但是,即使返回 false,仍会调用“ContactMaint”servlet。请问谁能告诉我哪里出错了?
<form name="deleteCont"
onsubmit="return validateDelete('${sessionScope.account}','${sessionScope.firstname}', '${sessionScope.lastname}')"
action="ContactMaint" method="post">
<input type="submit" value="Delete contact" name="delContact">
</form>
function validateDelete(account, contactFirstName, contactLastName) {
urlstrg = "http://localhost:8080/SalesPoliticalMapping/JCheckContacts?account=" +
account + "&firstname=" + contactFirstName + "&lastname=" + contactLastName;
$.get(urlstrg, function (result, status) {
if (result.length > 0) {
var alertmessage = "Can't delect contact:";
for (var i = 0; i < result.length; i++) {
alertmessage += result[i];
}
alert(alertmessage);
return false;
}
});
}
我现在修改了我的代码如下,虽然我不完全确定为什么:
function validateDelete(account, contactFirstName, contactLastName) {
$.ajaxSetup({async: false});
urlstrg = "http://localhost:8080/SalesPoliticalMapping/JCheckContacts?account=" + account + "&firstname=" + contactFirstName + "&lastname=" + contactLastName;
var valid = true;
var alertmessage = "";
$.get(urlstrg, function(result, status) {
if (result.length > 0) {
valid = false;
alertmessage = "Can't delect contact:";
for (var i = 0; i < result.length; i++) {
alertmessage += result[i];
}
}
});
if (valid===false) {
alert(alertmessage);
return false;}
};
【问题讨论】:
-
return false应该在 $.get() 之外[在validateDelete的范围内]。
标签: javascript jquery jsp