[英]JSP/Struts/JS form submission: how to modify inputted text data before submission?
在JavaScript等方面的菜鳥。 我是一名PHP /核心Java程序員,負責使用Struts在JSP中維護一堆JS代碼。 我需要做的很簡單,但是我找不到一個簡單的解決方案。 鑒於以下摘錄的HTML表單和JS提交功能的代碼摘錄,我需要在按下“提交”按鈕之后但在提交數據之前修改文本字段“查詢”的數據(提交至頁面URI)。 按下“提交”后,頁面會重新加載,並在URL后面附加?search = whatever_was_typed_in_the_text_box。 我需要修改該值:例如,一個簡單的字符替換功能:如果用戶鍵入“ apple”,則將所有“ a”字符替換為“ b”的函數就可以解決問題,以便在單擊“提交”時在文本字段中使用“蘋果”,頁面將重定向到(original-URL)?search = bpple。
我可以自己編寫文本處理函數(至少我了解足夠的JS),但是我不知道如何從表單中獲取輸入並在單擊按鈕之后但在提交之前進行修改。 我嘗試在實際提交行之前(以replaceChars為手寫體)在JS“ submitSearch”方法中添加“ document.forms [SEARCH_FORM_NAME] .query.value = replaceChars(document.forms [SEARCH_FORM_NAME] .query.value)”簡單的字符替換方法),但它沒有更改提交到URL中的數據。 我也嘗試了document.getElementById('query')。value = ...,結果相同。
在單擊“提交”按鈕之后,但在將表單提交到URL之前,如何修改下面表單中的文本字段中的數據?
代碼摘錄:
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<head>
<script type="text/javascript" defer="defer">
var SEARCH_FORM_NAME = "searchForm";
function submitSearch() {
$("sort").value = "filePath";
$("dir").value = "asc";
document.forms[SEARCH_FORM_NAME].submit();
return false;
}
</script>
</head>
<html:form styleId="searchForm" action="/search" method="get" onsubmit="return submitSearch();">
<table width="100%">
<tr>
<td style="width:10%;"><tiles:insert page="/WEB-INF/tiles/logo.jsp" /></td>
<td class = "search-cell" style="width:10%; white-space:nowrap;">
<html:text property="query" styleId="query" size="50"/>
<html:submit onclick="return submitSearch();">
Search
</html:submit>
</td>
</tr>
</table>
您正在將submitSearch()
分配給“提交”按鈕的onclick
事件和表單的onsubmit
事件!
由於onclick
事件在onsubmit
事件之前觸發,因此,如果onclick
事件未返回true, onsubmit
事件甚至不會觸發!
擺脫onclick
處理程序,然后它應該可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.