我需要验证jar文件和Jar文件的内容。
validation of contents of Jar
文件在我的servlet中完成并且响应我从servlet获取字符串。
根据servlet生成的响应,我在函数中验证它。
我的代码看起来像这样
function validateSteps(step) {
var appctxpath = document.getElementById("appcontextpath").getAttribute("value");
var isStepValid = true;
var buttonPress = document.getElementById("buttonClick").value;
// validate step 1
if (step == 1) {
var result = true;
if(buttonPress != "P")
{
var valid = $("#formID").validationEngine('validate');
//var vars = $("#formID").serialize();
//alert(valid);
if (valid == true) {
//alert("Hi");
result = true;
} else {
result = false;
$("#formID").validationEngine();
//return false;
}
if(result == true)
{
var result;
var connectorJarFile = document.getElementById("conncetorJar").files[0];
var formdata = new FormData();
formdata.append("conncetorJar", connectorJarFile);
var xhr = new XMLHttpRequest();
xhr.open("POST",appctxpath+"/ajax/AdminIlantusAppAddStepOne", true);
xhr.send(formdata);
xhr.onload = function(e)
{
if (xhr.readyState == 4 && xhr.status == 200)
{
var msg=xhr.responseText;
if(msg == "Invalid Jar File"){
alert("!Invalid jar file");
document.getElementById('errfn').innerHTML="This is Invalid jar file";
return false;
}
else{
alert("valid jar");
document.getElementById('errfn').innerHTML="";
return true;
}
}
};
}
如果消息是Invalid Jar File
,我应该停止控制转到下一页。
因为我在return false;
中保持if condition
。
控件仍然转到下一页。我该怎么做才能解决这个问题?
答案 0 :(得分:0)
ajax是异步的,这意味着你的validateSteps()
调用将在ajax成功处理程序(尝试返回false)之前很久完成。这就是为什么return false
对ajax成功处理程序没有影响。
如果AJAX说一切都有效,解决方案是提交表格,如果没有 - 请不要提交表格:
if(msg == "Invalid Jar File"){
alert("!Invalid jar file");
document.getElementById('errfn').innerHTML="This is Invalid jar file";
}
else{
alert("valid jar");
document.getElementById('errfn').innerHTML="";
$('#formID').submit(); // submit form
}
如果这是您想要的,请将提交更改为重定向。