首页 > 解决方案 > 在 JSP 中创建模式对话框并执行 POST 操作

问题描述

我正在尝试重命名页面中的文件。我必须在提交对话框弹出时执行 GET 请求以重命名文件。我面临的问题是,页面有很多输入字段,所以每次重命名文件时我都无法提交表单。文件列表的 HTML 组件是动态生成的。这是代码片段 -

<div class="modal fade" id="renameModal" role="dialog">
   <div class="modal-dialog modal-lg">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Rename File</h4>
        </div>
        <div  class="modal-body">
         <div id="renameForm" class="form-group">
     <label  class="col-sm-2 control-label" for="inputFname3">FileName: </label><input id="newFilename" type = "text" name = "newFilename"/>
     <br />         
     <input id="confirm-btn"  class="btn btn-primary" type = "submit" value = "Confirm" name = "ok" style="float: right" />  
     <br />
     </div>      
     </div>         
      </div>
    </div>
  </div><!-- /modal -->   
    <%
    String str =AdministrationServlet.fileJson(request, collection).toString();
        String x = request.getParameter("ok");
            if(x!=null && x.equals("Confirm"))
            {
      AdministrationServlet.renameFile(request,collection.getUuid(),"manifest_text", collection);} 
      %>

 <script type="text/javascript">
  $(document).ready(function () {
              $('button').click(function(){ 
                  var id = this.id;
                    var res = id.substring("rename-btn-".length,id.length); 
                    $('#renameModal').find('#renameForm').append('<input id="myfieldname" type="hidden" name="myfieldname" value="'+res+'" />');
                  var oldfilename = $('#myfieldname').val(); <%--"<%=request.getParameter("myfieldname")%>"; --%>
                  var newfilename = $('#newFilename').val(); <%--"<%=request.getParameter("newFilename")%>";--%>                  
                    $('a[id="'+oldfilename+'"]').text(newfilename); 
 });
              });

  </script>

如何通过 API 调用而不是提交表单来重命名文件。因为整个 div 都在一个表单中。

标签: javascriptjavajqueryjspbootstrap-modal

解决方案


您应该对 Servlet 进行 Ajax 调用以重命名文件。还有一件事,您应该将 javascript 代码远离 jsp 保存到单独的 js 文件中,并使用<script>标记将其包含在 jsp 页面中。


推荐阅读