2012-03-02 94 views
0

我是Java servlets的新手。我正在使用servlet創建一個html頁面。在不同的字段中,我有一個文本框字段,顯示已用時間。造成這種情況的代碼是在這裏:請求getParameter返回null的文本

<input type="text" size="15" disabled="disabled" hidden="true" name="finalduration"> 

我有一個計算,並輸入「finalduration」文本框中的值,使JavaScript文件它隱藏=「假」,一旦提交按鈕被按下。

然而,早在servlet中,我試圖處理由JavaScript輸入的值,我得到一個「空」。在servlet的代碼,我使用獲得的值是:

durationBar = (String)request.getParameter("finalduration"); 

的想法是,JavaScript的計算所經過的時間,進入過去的時間(或持續時間)在「finalduration」框,我servlet應該處理該值並進入數據庫。我可以從這個頁面讀取其他值(包括組合框,下拉列表等),這是我無法獲得的唯一值。

任何想法如何處理這個問題?

編輯 我刪除了「禁用」,它現在起作用。

,我想在這裏實現的想法是一個計時器吧。人來到我的網站,點擊「開始時間」,計時器啓動並顯示在屏幕上。在計時器運行期間,「延期」被隱藏。一旦用戶點擊「停止計時器」,持續時間就會使用javascript進行計算,最終持續時間將顯示在頁面上的「延期」文本字段中。這就是爲什麼我想以這樣的方式實現用戶不能編輯finalduration的原因,因爲它會破壞計算持續時間的目的。

關於如何實現任何想法,將不勝感激。

+0

他們是圍繞你的'input'輸入的'form'嗎? – 2012-03-02 22:37:18

+0

你的'finalduration'必須在一個'form'裏面,指向你的servlet的動作 – 2012-03-02 22:46:07

+0

對不起,忘了提這個。所有這些代碼都在指向servlet的「form」標籤內。這就是我從其他元素獲取價值的方法,除了這一點。 – BlueChips23 2012-03-02 22:50:30

回答

1

殘疾人表單域不會被用戶代理according to the HTML specification提交。只要刪除disabled屬性(它對隱藏的字段沒有多大意義),它應該可以工作。

更新:正如它指出的,你沒有正確隱藏該字段。正確的標記是:

<input type="hidden" name="finalduration"> 

然而,正如我已經說過的,用戶仍然可以修改值並提交他們想要的任何值。 而不是使用隱藏字段(或任何其他表單字段)來存儲您不希望惡意用戶修改的值。

+0

@deporter對不起,當我開始寫答案時,你的評論並不存在。無論如何,至少現在也有對相關規範的參考。 – biziclop 2012-03-02 23:09:53