2013-02-13 64 views
1

我正在編寫一個基於Web的應用程序來進行計算。除了用戶在JSP上填寫表單然後在另一個JSP上獲取結果之外,我希望有一個使用HTML5的HTML頁面來要求用戶輸入數字,然後在JSP上顯示計算的輸出。有沒有任何服務器端方法來驗證用戶只輸入數字信息?到目前爲止,我使用了3個HTML5輸入框,如: <input type="number" name="width" min=".1" step=".1" max="500">發送到服務器之前驗證HTML5數字輸入

它似乎唯一的驗證是捕獲如果用戶在最小值或超過最大值輸入數字輸入。如果沒有輸入,它仍然會發送。我希望它不會讓您發送數據,除非所有3個框都有效。我知道你可以簡單地爲此使用JavaScript,但它是一個JSP類,因此如果我使用除HTML或JSP以外的任何其他語言,我的教師不會喜歡。提前致謝。

編輯

這裏的網頁,他們會得到提示:我不希望它發送任何數據到「carpetprice」,直到它已經被充分驗證

<form method="get" action="carpetprice.jsp"> Width of room in feet: <input type="number" name="width" min=".1" step=".1" max="500"><br /> Length of room in feet: <input type="number" name="length" min=".1" step=".1" max="500"><br /> Price of carpet per square foot: <input type="number" name="width" min=".1" step=".1" max="500"><br /> <input type="submit" value="Compute Carpet Price"> </form>

+0

由於JSP位於服務器上,如果使用它進行驗證,數據必須已經發送到服務器。現在你到底想要驗證什麼,在什麼意義上?它是你想要一個整數並且允許空白嗎? – Celeritas 2013-02-13 06:16:10

+0

是的。就像我的最小值和最大值一樣,我只是喜歡在.1 - 500之間的值。還有其他我不想發送到服務器的值。 – 2013-02-13 06:18:48

回答

1

在你有表格的頁面上,你實際上需要一個<form>標籤。你應該顯示你使用的所有代碼。這裏有一個例子:

<form method="POST" action="check.jsp"> 
<input type="number" name="width" min=".1" step=".1" max="500" name="someMeaningfulName" /> 
<input type="submit" /> 
</form> 

然後在check.jsp你會像

<% 
String toBeValidated = request.getParameter("someMeaningfulName"); 
//rest of the validation process here 
%> 

使用的,如果檢查語句是否整數是在一定範圍內。如果驗證失敗,你沒有說你想要發生什麼。用戶是否重定向到帶有表單的頁面?

+0

那麼這將是一個服務器,對吧?我想知道是否可以用HTML來驗證它。對不起,如果我沒有指定。我可能只需要在JSP中執行此操作。 – 2013-02-13 06:38:00

+0

我不認爲這是可能的。 – Celeritas 2013-02-13 08:56:25

+0

謝謝,我一直在研究它,我不認爲它也是。我希望得到一個明確的答案。 – 2013-02-13 09:02:41