Ich bin kürzlich während eines Projekts auf das Problem gestoßen, JavaScript zum Senden von Formularen zu verwenden, aber es war nicht umfassend genug. Dieses Mal habe ich mehrere Möglichkeiten zum Senden von Formularen mithilfe von JavaScript zusammengefasst und verglichen ausgewählt Ein Weg, der für dieses Projekt am besten funktioniert.
Ich arbeite derzeit an einem kleinen System zum Erstellen von Benutzern für die Sun Communication Suite. Jeder weiß, dass wir über Formulare, Ajax und Links auf den Server zugreifen können, zum Beispiel: Erste Seite, alle erforderlichen Daten in den Hyperlink schreiben, Wenn Sie es beobachten können, wissen Sie, dass sich im obigen Link nur currentPage ändert und die anderen Parameter event, keyword, searbyBy und cn unverändert bleiben. Ich dachte also, ich könnte diese unveränderten Parameter in einer Form kapseln, wenn die Wenn der Benutzer auf den Hyperlink oben klickt, sende ich das Formular mit JavaScript ab und greife dann natürlich auf den Server zu.
Formular:
<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>
Nach dem Login kopieren
Beim Absenden des Formulars muss ich nur den Parameter currentPage an JavaScript übergeben, daher habe ich den obigen Link in das folgende Formular geändert:
<a href=# onclick=document.pagination.currentPage.value="+pages[j]+";document.pagination.submit();><span style='color: red;'>["+pages[j]+"]</span></a>
Nach dem Login kopieren
Jeder muss darauf achten, document.pagination.currentPage.value="+pages[j]+"; vor document.pagination.submit(); zu schreiben, damit der Parameter currentPage angezeigt wird, bevor der Benutzer das Formular absendet wurde auf den von uns benötigten Wert geändert. Auf diese Weise habe ich die Verbindung zum Absenden des Formulars abgeschlossen, bin jedoch auf ein Problem gestoßen. Ich muss den obigen Code auf vielen Seiten ausprobieren. Wenn ich ein Stück JavaScript einheitlich schreiben kann, wird es für mich einfacher Um das gesamte System in Zukunft zu warten, habe ich eine JavaScript-Funktion geschrieben.
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();
}
Nach dem Login kopieren
Nach dem Login kopieren
Dann verwende ich diese Funktion für das Onclick-Ereignis des Hyperlinks:
["+pages[j]+"], Sie können den gesamten Absatz sehen Der Code ist viel einfacher.
Also habe ich es zusammengefasst. Es gibt wahrscheinlich zwei Möglichkeiten, ein Formular mit Javascript zu schreiben (nach meinem derzeitigen Verständnis)
1. document.formName.submit();
2. var form = document.getElementById(id);
form.submit();
Das nächste Mal möchte ich mit Ihnen teilen, wie Sie Paging mit JNDI implementieren. Ich habe den Code dieses Mal als Referenz angehängt.
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();
}
Nach dem Login kopieren
Nach dem Login kopieren
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")%>
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
<%
}
%>
Nach dem Login kopieren