1

私はJavaScriptとHTMLの初心者です。HTMLフォームがポストバックしてファイルをダウンロードしている間に、ビジーな画像を表示するように取り組んでいます。http://malsup.com/jquery/form/#options-objectプラグインを使用しています。私は IE 9 を使用しています。フォームをポストバックし、代わりにファイルを受け取ります。

ポストバックすると、ビジー マスクが表示され、IE からファイルとして保存するように求められますが、マスクは消えません。成功/エラー コールバックは呼び出されません。以下は私のコードのスナップショットです。

この問題を解決するためのご指導をよろしくお願いいたします。

`frmExport.html
<head>
<script src="js/jquery-1.8.0.js"></script>

<script src="js/jquery.form.js"></script>

<script src="js/frmExport.js"></script>
</head>
<body onload="......">
<form id="frmExport" onsubmit="return exportFile();" enctype="multipart/form-data" method="post">
<fieldset>
<legend class="cuesGroupBoxTitle">Export File</legend>
    <table border="0" cellpadding="0" cellspacing="8">
        <tr>
        <td width="50%">Export File:</td>
        <td><input type="submit" id="ExportFileButton" value="Export" /></td>
        </tr>
    </table>
</fieldset>
</form>
</body>

frmExport.js

function exportSuccess(responseText, statusText, xhr, $form)
{ 
hideMask("exportFile");
alert(statusText");
}

function exportError()
{
hideMask("exportFile");
alert("An error occurred while exporting file.");
}

function exportFile() 
{
if(confirm("Exporting file may take sometime. Do you want to continue?"))
{
    var options = 
    { 
        type:          "POST",
        success:       exportSuccess,  // post-submit callback 
        error:         exportError,
        url:           'exportURI',
        dataType:      'text'
    }; 

    // bind to the form's submit event 
    $('#frmExport').submit(function() 
    { 
        $(this).ajaxSubmit(options); 

        showMask("exportFile");

        //always return false
        return false; 
    });
}
}`
4

1 に答える 1

0

あなたの問題は$('#frmExport').submit(...)、送信がすでにトリガーされているときに送信イベント()をフックすることだと確信しています。document.ready にフックしてみてください。

$(document).ready(function() {
var options = 
{ 
    type:          "POST",
    success:       exportSuccess,  // post-submit callback 
    error:         exportError,
    url:           'exportURI',
    dataType:      'text'
}; 

// bind to the form's submit event 
$('#frmExport').submit(function() 
{ 
    $(this).ajaxSubmit(options); 

    showMask("exportFile");

    //always return false
    return false; 
});

});
于 2013-08-10T20:29:24.720 に答える