2015-07-06 2 views
0

Как отправить форму при нажатии кнопки для вызова функции внутри javascript-вызова со всей информацией о форме, приведенной ниже. Я использую библиотеку основных тегов struts и добавляю тег кнопки. Ниже приведен кодв расположении добавить кнопку вместо отправки формы

<body> 
    <html:form action="createtableAction.do?param=uploadExcelFile1" method="post" enctype="multipart/form-data"> 
     <table> 
      <tr> 
       <td align="left" colspan="1" class="migrate"> 
        <html:file property="filename" styleId="filename" style="background-color:lightgoldenrodyellow; color:black;" /> 
       </td> 
      </tr> 
      <tr style="width:100%"> 
       <td align="center" colspan="2" class="migrate"> 
        <html:submit onclick="return Checkfiles()" style="background-color:silver; color:darkblue;">Upload File</html:submit> 
       </td> 
      </tr> 
     </table> 
    </html:form> 
</body> 

в функции действия вызова и представить

function Checkfiles() { 
    if (fileList[count] === tempFileName) { 
     //want action and form submit code ... 
     //document.forms[0].action='/createtableAction.do?param=uploadExcelFile1'; 
     //document.forms[0].submit(); 
     return true; 
    } else { 
     return false; 
    }  
} 
+0

Итак, вы спрашиваете, как отправить форму с файлом через Ajax? –

ответ

0

Вы можете отправить файл с помощью AJAX запрос. В javascript есть FormData(). Вы можете добавить файлы к объекту FormData и отправить его на сервлет.

function checkFiles(){ 
    var formData=new FormData(); 
    var uploadUrl = 'createtableAction.do?param=uploadExcelFile1'; 
    // Uncomment below this if you wish to send any other fields with file 
    // formData.append('id', 1); 
    console.log('loading file'); 
    var file= document.getElementById("filename"); 
    formData.append('filename',file); 

    //create the ajax request (traditional way) 
    var request = new XMLHttpRequest(); 
    request.open('POST', uploadUrl); 
    request.send(formData); 
    // if you want to reload uncomment the line below 
    // window.location.reload(); 
} 

Надеюсь, это вам поможет.

Смежные вопросы