如何在执行onsubmit Javascript函数之前完成表单JSP操作?

时间:2014-03-26 19:30:47

标签: javascript jquery ajax jsp

我在" index.jsp"中有一个表单。用于上传图片:

<div id="uploadsContainer" class="mm11Container" style="top:100px; left: 300px;">
            <div id="mydiv" class="mm11 card front face">
                <form id= "uploadForm" action="imageUploadForm.jsp" onsubmit="setUploadedBackground('<%=fileName%>', '<%=uploadResult%>');" method="post" enctype="multipart/form-data">
                    <input class="uploads" type="file" name="file" size="50"/>
                    <input class="uploadFile" id='submitImage' type="submit" value="Upload File"/>
                </form>
            </div>
        </div>

&#34; imageUploadForm.jsp&#34;中的代码将检查上传的文件是否实际上是一个图像,并且不超过最大文件大小,并将结果代码返回到&#34; index.jsp&#34;以及在数据库中存储上传文件的名称(假设它已正确上传)。

我想要的是在发生这种情况之后,JS函数

setUploadedBackground('<%=fileName%>', '<%=uploadResult%>');

被调用 - 这将使用结果代码来警告已超出最大文件大小,提醒用户上传的文件不是图像,或者实际设置&#34; mydiv&#34;的背景​​。到上传的图像。我希望只要单击“上载”按钮并且操作页面已完成运行并返回结果代码,就会发生这种情况。 JS使用Ajax来执行此操作而无需重新加载页面:

function setUploadedBackground(fileName, uploadResult){
    alert("Function called uploadResult = "+uploadResult+ " fileName = "+ fileName);
    if (uploadResult === "0" && fileName != null) {
        alert("Uploading image");
        var ajx;
        if (window.XMLHttpRequest)
        {// If the browser if IE7+[or] Firefox[or] Chrome[or] Opera[or]Safari
            ajx=new XMLHttpRequest();
        }
        else
        {//If browser is IE6, IE5
            ajx=new ActiveXObject("Microsoft.XMLHTTP");
        }
        ajx.onreadystatechange=function()
        {
            if (ajx.readyState==4 && ajx.status==200)
            {
                alert("Here");
                $("#mydiv").css('background-image', 'url(uploads/'+fileName+')');
                $("#mydiv").css('background-size', '100%');
            }
        }
        ajx.open("GET","index.jsp",true);
        ajx.send();
        return false;
    }
    else if (uploadResult.equals("1")) {
        alert("Maximum file size exceeded");
    } else if (uploadResult.equals("2")) {
        alert("Please upload an image");
    }
    return false;
}

我一直在寻找年龄,但我不确定如何在JS之前首先执行动作JSP,而不必添加另一个将被称为“abackground”的按钮&#39;设置为abackground&#39;并且可以在图像上传后使用...非常感谢任何帮助!

0 个答案:

没有答案