首頁 > web前端 > js教程 > 簡述JavaScript提交表單的方式 (Using JavaScript Submit Form)_javascript技巧

簡述JavaScript提交表單的方式 (Using JavaScript Submit Form)_javascript技巧

WBOY
發布: 2016-05-16 15:10:24
原創
1756 人瀏覽過

最近做專案遇到用Javascript提交表單的問題, 之前也做過幾次, 但是不夠全面, 這次總結出了幾種用JavaScript提交表單的方式, 並且對此作出了比較, 選出了一種最適合此項目的方式。

我目前正在為Sun Communication Suite做一個創建用戶的小型系統,大家都知道我們可以透過表單,Ajax 和連結來存取伺服器, 最簡單的方法就是使用連接, 例如:First Page, 把所有需要的資料寫到超連結上, 如果你能夠觀察一下就會知道,在上邊的連結中只有currentPage是變化的, 其他參數event, keyword, searbyBy和cn是不變的, 那麼我就想到如果我能夠把這些不變的參數封裝到一個表單中, 當使用者點擊上面的超連結的時候我用JavaScript把這個表單提交, 那麼我自然會訪問到伺服器。

表單:

<form name="pagination" id="pagination" action="UserServlet" method="get">
<input type="hidden" name="currentPage" value="1"/>
<Input type="hidden" name="cn" value="<%=request.getAttribute("cn")%>"/>
<input type="hidden" name="keyword" value="<%=request.getAttribute("keyword")%>"/>
<input type="hidden" name="searchBy" value="<%=request.getAttribute("searchBy")%>"/>
<input type="hidden" name="event" value="SEARCH_USER_FOR_MAILING_LIST">
</form>
登入後複製

在提交表單的過程中, 我只需要把參數currentPage傳給JavaScript就好了,所以我就把上面的連接改為下邊的形式:

<a href=# onclick=document.pagination.currentPage.value="+pages[j]+";document.pagination.submit();><span style='color: red;'>["+pages[j]+"]</span></a>
登入後複製

大家要注意一定要把document.pagination.currentPage.value="+pages[j]+";寫在document.pagination.submit();的前邊, 這樣在用戶提交表單之前, 參數currentPage就已經被修改為我們需要的數值。 這樣我就完成了用連接來提交表單, 但是我遇到了一個問題, 我需要試用上面的這段程式碼在很多頁面, 如果我能統一的寫一段JavaScript的話,就會方面我以後對整個系統做維護, 所以我幾寫了一個JavaScript的函數。

function submitForm(id,currentPage){
//var currentPage = document.pagination.currentPage.value;
//alert(currentPage);
//currentPage=100;
//var currentPage = document.pagination.currentPage.value;
//alert(currentPage);
document.pagination.currentPage.value=currentPage;
var form = document.getElementById(id);
form.submit();
}
登入後複製
登入後複製

然後我在超連結的onclick事件上條用這個函數:

["+pages[j]+"], 大家可以看到整段程式碼簡潔了不少。

所以我總結了一下,用Javascript提交表單大概有兩種寫法(根據我目前的理解)

1. document.formName.submit();

2. var form = document.getElementById(id);

form.submit();

下次想跟大家分享一下用JNDI實現分頁。我把這次的程式碼附在下邊, 大家可以參考一下。

commons.js

function submitForm(id,currentPage){
//var currentPage = document.pagination.currentPage.value;
//alert(currentPage);
//currentPage=100;
//var currentPage = document.pagination.currentPage.value;
//alert(currentPage);
document.pagination.currentPage.value=currentPage;
var form = document.getElementById(id);
form.submit();
}
登入後複製
登入後複製

mailingListMemberAdd.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@ page import="java.util.LinkedList" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="my.gov.rmp.webmail.domain.User" %>
<%@ page import="my.gov.rmp.webmail.util.Pager" %>



Add Member to Mailing List:<%=request.getAttribute("cn")%>




Add new members to mailing list: <%=request.getAttribute("cn")%>

<% Pager pager =(Pager) request.getAttribute("pager"); int currentPage =pager.getCurrentPage(); int pageSize = pager.getPageSize(); int i=(currentPage-1)*pageSize; LinkedList users = (LinkedList)request.getAttribute("users"); if(!users.isEmpty()){ %> <% for(Iterator iter = users.iterator();iter.hasNext();){ User user = (User) iter.next(); i++; // Attributes attrs = user.getAttrs(); %> <% } %> "/>
No. UID:gCode:Givenname:Surname:Mail:Description:
<%=i%>. <%=user.getUid()%> <%=user.getGCode()%> <%=user.getGivenName()%> <%=user.getSn()%> <%=user.getMail()%> <%if(user.getDescription()==null||user.getDescription().length()==0){%>Not Set<%} else %><%=user.getDescription()%>

Pages: <form name="pagination" id="pagination" action="UserServlet" method="get"> <input type="hidden" name="currentPage" value="1"/> <Input type="hidden" name="cn" value="<%=request.getAttribute("cn")%>"/> <input type="hidden" name="keyword" value="<%=request.getAttribute("keyword")%>"/> <input type="hidden" name="searchBy" value="<%=request.getAttribute("searchBy")%>"/> <input type="hidden" name="event" value="SEARCH_USER_FOR_MAILING_LIST"> </form> <% int[] pages = pager.getPages(); String keyword = request.getAttribute("keyword").toString(); String searchBy = request.getAttribute("searchBy").toString(); if(pager.isHasFirst()){ out.println("First Page "); } if(pager.isHasPrevious()){ out.println("Prev Page "); } for(int j=0;j["+pages[j]+"]"); }else { out.println("["+pages[j]+"]"); } } if(pager.isHasNext()){ out.println("Next Page "); } if(pager.isHasLast()){ out.println("Last Page "); } %>

<% } else { //make the mailing list member availabe when user are trying to re-run the search //request.setAttribute("members", members); %>

No results are matched your keyword or the user that you are looking for is already a member of this mailing list, please specify another keywork and ">Search Again

<% } %>
登入後複製

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板